Symfony2 Assetic从控制器内部获取资产URL,而不是模板

Pid*_*ien 14 symfony assetic

我想将url包含在控制器中我的bundle中的一个资产上,而不是模板中.

更具体地说,但不是很重要:我使用obHighChartsBundle创建一个HighChart图表,我必须在我生成的图形的某些点上绘制一些特殊图标.因此,我需要图标的URL,它位于我的bundle的资产文件夹中.

是否可以从控制器调用某种资产管理器并获取该资产的正确URL?

tom*_*rke 39

你可以调用($ packageName是可选的):

$this->container->get('assets.packages')->getUrl($path, $packageName);
Run Code Online (Sandbox Code Playgroud)

对于较旧的Symfony版本,调用服务templating.helper.assets,因此您使用:

$this->container->get('templating.helper.assets')->getUrl($path, $packageName);
Run Code Online (Sandbox Code Playgroud)

它的使用方式与twig函数相同(实际上这是在twig函数中调用的).

  • 从Symfony3开始:`$ this-> get('assets.packages') - > getUrl($ path)` (13认同)