web-dev-qa-db-ja.com

Symfony2 Asseticは、テンプレートではなく、コントローラー内からアセットURLを取得します

テンプレートではなく、コントローラーのバンドルにあるアセットの1つへのURLを含めたい。

より具体的には、それほど重要ではありません。obHighChartsBundleを使用してHighChartチャートを作成し、作成しているグラフのいくつかのポイントにいくつかの特別なアイコンをプロットする必要があります。したがって、バンドルのアセットフォルダーにあるアイコンへのURLが必要です。

コントローラーからある種のアセットマネージャーを呼び出して、このアセットへの正しいURLを取得することは可能ですか?

14
Piddien

呼び出すことができます($ packageNameはオプションです):

$this->container->get('assets.packages')->getUrl($path, $packageName);

古いSymfonyバージョンの場合、サービスはtemplating.helper.assetsと呼ばれるため、以下を使用します。

$this->container->get('templating.helper.assets')->getUrl($path, $packageName);

twig関数と同じように使用されます(実際、これはtwig関数で呼び出されます)。

39
tomas.pecserke