【问题标题】:Symfony2 Assetic get asset urls from inside controller, not templateSymfony2 Assetic 从控制器内部获取资产 url,而不是模板
【发布时间】:2013-03-16 16:37:38
【问题描述】:

我想在控制器中包含我的捆绑包中的一项资产的 URL,而不是在模板中。

更具体地说,但不是很重要:我使用 obHighChartsBundle 制作了一个 HighChart 图表,并且我必须在我正在制作的图表的某些点上绘制一些特殊图标。因此,我需要图标的 url,它位于我的 bundle 的资产文件夹中。

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

【问题讨论】:

    标签: symfony assetic


    【解决方案1】:

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

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

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

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

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

    【讨论】:

    • 我是否需要一个 use 声明才能以某种方式包含 twig?
    • 我不确定,你在问什么。你不需要树枝就可以让它工作。
    • 我在想资产但写了 twig ;) 但我得到了它的工作。
    • 从 Symfony3 开始:$this->get('assets.packages')->getUrl($path)
    • @Nicolas Bundle 符号由 Assetic 评估,而不是由该解决方案使用的模板组件的资产助手评估。你可以改用$this->container->get('templating.helper.assets')->getUrl('images/navbar_logo.jpg', 'bundles/my/Resources/public') 之类的东西。我没有设置环境来测试这个,但希望你能明白。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-02-07
    • 2012-12-13
    • 2012-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-04
    相关资源
    最近更新 更多