问题标签 [twig-extension]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
symfony - 在扩展 -> 包含模板中渲染块
问题
在navbar.html.twig
我有一个看起来像这样的块:
这个导航栏是include
我的base.html.twig
。
然后我的页面模板extend
是基础。
但是我在导航栏中想要的东西并没有出现在导航栏中,因为它是include
由基地组成的,所以那里没有父/子关系。
问题
让我在扩展模板中覆盖包含模板中的块的好(或任何)方法是什么?
php - 我究竟如何使用 Assetic 的 Twig 扩展?
我(试图)将 Assetic 与 Twig 和 Slim 一起使用(所以,没有 Symfony)。我想我已经弄清楚了创建的基础知识AssetCollection
,但我不太清楚如何在我的模板中链接这个集合。
如果我做类似的事情echo $app->css->dump();
,它会正确打印出我所有的 CSS。太好了,但是我如何将它连接到 Twig 中?
项目自述文件中给出的示例给我留下了比我开始时更多的问题:
到底是/path/to/sass/main.sass
什么?我以为我是通过$factory->createAsset
. 文档接着说:
css/src/*.sass
当扩展处于调试模式时,这个相同的标签将呈现多个链接元素,一个用于glob引用的每个资产...
css/src/*.sass
我在自述文件中的其他任何地方都看不到任何内容。他们在说什么?
最后,我在 README 的底部看到了这个:
在我看来,这就像我会在构建步骤中运行一次(“循环遍历我的所有模板”)。但是,我认为 Assetic 也将支持资产的按需过滤(和缓存)。我显然不想在每个请求上循环遍历我的所有模板。writeManagerAssets
Twig扩展程序不应该自动触发相关调用吗?
任何帮助将不胜感激。
php - symfony2. hot to use transchoice with expression
试图在 symfony 中做类似的事情
ofc 这只是一个例子 - 想一想,我如何将表达式放入 transchoice?
php - 树枝:url_decode
我用树枝过滤器 url_encode 编码了一个 url 参数。
哪个在 url 中输出
所以在请求的页面中带有url参数
显示 01%2F04%2F2016 但我想要 01/04/2016
我尝试使用原始过滤器,还做了一个树枝扩展:
但即使这样,它仍然显示 01%2F04%2F2016
我在我的控制器方法中得到了相同的结果:
这样做的正确方法是什么?
更新 :
日期来自“文本”类型的输入。不,这是一个带有数字和 / 的简单字符串。
symfony - 生成器中不提供 Twig 过滤器
当我调用我的自定义过滤器时,它会失败:
服务已注册:
它列在下面container:debug
该类如下所示:
还twig:debug
列出我的snake_case
过滤器。
twig 文件由 symfony 命令调用的 Generator 渲染。
这里是过滤器的调用
php - Symfony Twig Extension 破坏了其他服务 - 模板是在安全之前完成的吗?
我正在开发一个 Symfony 2.7 WebApp。我创建的其中一个捆绑包包括一项服务,该服务提供一些与用户相关的内容,例如userHasPurchases()
.
问题是,包括Twig Extesion
中断另一个服务:
应用商店服务
AppShopBundle\Resources\config\services.yml
到目前为止一切正常:AppShopServices
使用当前用户创建userHasPurchases()
并按预期工作。
现在我添加了一个Twig 扩展,以便能够userHasPurchases()
在我的模板中使用:
树枝扩展
在 AppShopBundle\Resources\config\services.yml 中包含扩展
包含 ,之后Twig Extension
,AppShopService
它的方法userHasPurchases
不再起作用。问题是, 的构造函数AppShopService
不再设置user
,因为$tokenStorage->getToken()
现在返回null
。
这怎么可能?除了包括Twig Extension
. 一旦我Twig Extension
从services.yml
所有东西中删除它,它就会再次正常工作。
我唯一的猜测是,它的创建Twig Extension
是在任何安全性之前完成的。但为什么?
知道这里可能有什么问题吗?
php - Twig 扩展似乎导致尝试加载不存在的缓存文件
我有一个基于 silex 的站点的树枝扩展:
在应用程序文件中注册如下:
这似乎是正确的——在扩展类名称中引入拼写错误会导致与我所坚持的不同的异常。
我在我的树枝模板中用 调用这个扩展{{ maybeDecodeJapanese() }}
,这会导致这个异常(它似乎不是由模板调用本身引起的,拼错它会生成一个标准函数未找到异常):
这发生在 /silex/vendor/twig/twig/lib/Twig/Environment.php
我最好的猜测是这是某种缓存文件。在开发环境中禁用了缓存,但我已经尝试删除缓存文件夹内容,但没有帮助。谷歌搜索尚未提供任何其他线索。
任何找到问题根源的帮助都会非常有帮助。
php - Twig Extension 不适用于 Symfony 2
我创建了一个 Twig 扩展以显示不同货币格式的金额,例如:印度、美元等。
我按照 Symfony2 指南的建议进行如下操作。
NameSpace/AccountBundle/Extension/AccountExtension.php
注册在app/config/services.yml
:
当我在树枝文件中使用它时:
{{ 50000 | get_money_indian_format }}
我收到以下错误:过滤器get_money_indian_format
不存在EduAccountBundle:Ledger:showLedgers.html.twig
php - Symfony2 和 Twig:如何以及在何处插入 PHP 函数以在 TWIG 中使用?
我需要在模板 TWIG 中调用 PHP 函数。我如何以及在何处插入该功能?这是我的例子:我的控制器是:
我的树枝模板是:
但我收到此错误消息:
尝试从命名空间“BackendBundle\Controller”加载类“Twig_Environment”。您是否忘记了另一个名称空间的“使用”语句?
什么不见了?
symfony - 无法使用沙盒安全策略在树枝模板中呈现使用 trans 过滤的文本
我有点困惑。首先,看看我的代码,我猜。
这是我要渲染的模板
在这里,如您所见,我想根据模板的类型来渲染模板。问题是:一半的模板渲染得很好,然后,当它尝试渲染翻译后的字符串时,它会抛出一个错误。
我在尝试调用渲染方法之前检查了这个函数是否存在,它确实是未定义的。基本上,我在这里有两个问题:
问题 1 它在我的项目的其他部分是如何工作的,但在这个特定的处理程序中却不是?请参阅下面的“重要更新”。
问题 2 我可以通过其他方式解决我的问题吗?例如,不使用沙盒或使用带有某种标志“everythingAllowed=true”的沙盒?
注意力!重要更新 以前,我误解了自己的问题。我以为是在渲染变量时抛出了错误,但我重新检查了情况(当 Alain Tiemblo 在评论中询问我这里的树枝模板代码时),现在 100% 确定它是在尝试翻译时抛出的。另外,我的项目中到处都有翻译,而且效果很好,但在这种特定情况下却不是。我认为值得一提的是,我还尝试在不使用沙盒的情况下渲染模板。我试图像这样直接从 Twig Engine 渲染它
结果 - 没有正确翻译文本。当我转储“语言环境”时 - 我得到了一种特定的语言,但文本被翻译成另一种语言。但至少使用这种方法 - 我没有收到任何错误..有人可以为我澄清一下吗?因为我真的不明白 Intl/i18n 扩展是如何工作的,为什么它不想在 Sandbox 中工作或不在 Sanbox 中工作?
PS 我的猜测,为什么它不能直接从 Twig Engine 工作 - 可能我不应该像“@templating”那样注入或者它注入恰到好处,但是没有启用 Intl 或 I18n 扩展?如何启用。而且我不知道为什么它不适用于 Sandbox