使用Twig创建模板时,可以轻松使用path
和asset
函数。
<a href="{{ path('my_route') }}"><img src="{{ asset('bundles/acmedemo/my_image.png') }}" /></a>
但是,我的一些数据来自非twig文件或来自数据库。从那里解决这些功能的正确方法是什么?
到目前为止,我正在使用正则表达式替换(preg_replace_callback
)作为路径函数。但是,有没有更好的方式?
答案 0 :(得分:3)
我很自豪地介绍我的第一个公共迷你项目StaticBundle。它几乎可以让你将包中的任何文件直接包含在模板中。
编辑现在可以使用编辑器安装捆绑包,请参阅readme上的说明。
将以下内容添加到deps
:
[KGStaticBundle]
git=git://github.com/kgilden/KGStaticBundle.git
target=bundles/KG/StaticBundle
运行bin/vendors install
。
在app/autoload.php
注册命名空间:
'KG' => __DIR__.'/../vendor/bundles',
在app/AppKernel.php
注册捆绑包:
new KG\StaticBundle\KGStaticBUndle(),
假设我们准备好将文件src/Acme/Bundle/DemoBundle/Static/hello.txt
包含在模板中。我们必须使用file
函数:
{# src/Acme/Bundle/DemoBundle/Resources/views/Demo/index.html.twig #}
{{ file('@AcmeDemoBundle/Static/hello.txt') }}
逻辑名称被解析为实际路径,而简单的file_get_contents
将检索数据。