use*_*170 4 php symfony twig symfony-2.3
我正在尝试在Symfony 2.3项目中激活Twig StringLoader扩展,但是无法正确获取yaml语法.
这篇文章是指Heyflynn在一篇文章中回答完全相同问题的答案,但提供了一个不起作用的解决方案(对我来说).
在我的app/config/config.yml中编写以下行只是给出了以下异常:
# app/config/config.yml
acme.twig.extension.loader:
class: Twig_Extension_StringLoader
tags:
- { name: 'twig.extension' }
Run Code Online (Sandbox Code Playgroud)
给我这个:
FileLoaderLoadException:无法从".../app/config/config_dev.yml"导入资源".../app/config/config.yml".(没有扩展程序可以加载"acme.twig.extension.loader"的配置(在.../app/config/config.yml中).查找命名空间"acme.twig.extension.loader",找到"框架","安全","twig","monolog","swiftmailer","assetic","doctrine","sensio_framework_extra","apy_data_grid"," 项目 ","acme_demo","web_profiler","sensio_distribution" )
(我已经想知道acme.twig.extension.loader中的acme外观并将其替换为项目包的名称,但这又给了我同样的例外.只是切断它也不起作用.)
请帮忙!
Twig不是acme包的一部分,Twig是供应商包本身,因此错误是正确的.acme.twig.extension.loader没有这样的命名空间
固定代码是:
# services.yml
services:
twig.extension.stringloader:
class: Twig_Extension_StringLoader
tags:
- { name: twig.extension }
Run Code Online (Sandbox Code Playgroud)
这可以添加到/app/config/config.yml每个包中使用或将其添加到您的包文件夹中/Resources/config/services.yml以仅在特定包中使用.
然后在twig模板中使用它们:
{{ include(template_from_string(page.template)) }}
Run Code Online (Sandbox Code Playgroud)
以上在Symfony v2.5中适用于我
| 归档时间: |
|
| 查看次数: |
2411 次 |
| 最近记录: |