【发布时间】:2013-03-16 16:37:38
【问题描述】:
我想在控制器中包含我的捆绑包中的一项资产的 URL,而不是在模板中。
更具体地说,但不是很重要:我使用 obHighChartsBundle 制作了一个 HighChart 图表,并且我必须在我正在制作的图表的某些点上绘制一些特殊图标。因此,我需要图标的 url,它位于我的 bundle 的资产文件夹中。
是否可以从控制器调用某种资产管理器并获取此资产的正确 url?
【问题讨论】:
我想在控制器中包含我的捆绑包中的一项资产的 URL,而不是在模板中。
更具体地说,但不是很重要:我使用 obHighChartsBundle 制作了一个 HighChart 图表,并且我必须在我正在制作的图表的某些点上绘制一些特殊图标。因此,我需要图标的 url,它位于我的 bundle 的资产文件夹中。
是否可以从控制器调用某种资产管理器并获取此资产的正确 url?
【问题讨论】:
你可以调用($packageName 是可选的):
$this->container->get('assets.packages')->getUrl($path, $packageName);
对于较旧的 Symfony 版本,服务称为 templating.helper.assets,因此您使用:
$this->container->get('templating.helper.assets')->getUrl($path, $packageName);
它的使用方式与twig函数相同(实际上这是在twig函数中调用的)。
【讨论】:
$this->get('assets.packages')->getUrl($path)
$this->container->get('templating.helper.assets')->getUrl('images/navbar_logo.jpg', 'bundles/my/Resources/public') 之类的东西。我没有设置环境来测试这个,但希望你能明白。