问题标签 [twig-filter]

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.

0 投票
2 回答
2996 浏览

php - TWIG:从字符串中修剪两个字符

0 投票
1 回答
92 浏览

twig - 如何在不使用 jquery 的情况下获取 twig 中输入的值并在同一页面 twig 中存在的 url 中重用

我想获取输入名称 =“quantite”的值并在参数“quantite”的路径中重用。

0 投票
3 回答
562 浏览

php - 在自定义 Twig 过滤器中调用内置过滤器

设置自定义 Twig 过滤器时(请参阅https://symfony.com/doc/current/templating/twig_extension.html),如何在自定义函数中调用现有的 Twig 过滤器?

https://stackoverflow.com/a/41551944/1668200建议parent::dateFilter($timestamp, $format);,但这不起作用:

试图调用类“Twig_Extension”的名为“dateFilter”的未定义方法。

0 投票
0 回答
1434 浏览

twig - 如何截断文本并在 Twig 中使用原始过滤器

问题是原始 Twig 过滤器必须位于链的末尾才能正常工作并用相应的字符替换 HTML 实体。这会导致一个问题,因为我还需要使用 truncate 函数。截断正确发生,但在截断发生在 HTML 实体字符串之一的中间的情况下,原始函数无法删除该实体。

当前解决方案:

输入字符串:

当前解决方案实现了什么:

我想要达到的目标:

0 投票
0 回答
1128 浏览

php - 使用默认过滤器时,Twig 包含 template_from_string 意外的“&”

我正在使用 Yii2 的 yiisoft/yii2-twig 扩展来从字符串呈现模板。

要渲染的字符串:

我正在使用以下 view.twig 进行渲染:

但是,当我尝试渲染此字符串时,twig 返回以下错误:

字符串模板:

我知道错误出现在默认过滤器中,因为我使用的是引号。我该如何解决这个问题?

0 投票
1 回答
86 浏览

twig - 无法多次迭代“过滤器”过滤器

我正在尝试将“过滤器”过滤器(自 Twig 2.10 起可用)的结果分配给一个变量,以便我可以多次使用它:

但不幸的是,如果我尝试多次迭代它(使用“长度”过滤器计数),我会收到错误

无法遍历已经关闭的生成器

在第一个之后。错误很明显,“过滤器”实际上返回了一个生成器(我相信它不能被迭代多次),而不是一个数组或集合。

问题是它无法编写以下代码,例如:

此代码将在 for 循环中触发上述错误。

我可以重新过滤原始集合,而不是使用变量,但如果它包含很多元素,这似乎不是最佳选择。我也想过写自己的过滤器,把原来的过滤器包起来,但如果我不必这样做,我会活得更好。

有什么更好的办法吗?这是否应该被视为 Twig 中的错误(在这种情况下,我将在他们的回购中打开一个问题)?

请注意,https://github.com/dpolac/twig-lambda没有表现出这种奇怪的行为,但与 Twig 2.10 不兼容。

谢谢

0 投票
2 回答
112 浏览

twig - 原始过滤器仍在源中将 & 转换为 &

我正在尝试在 Twig 上使用原始过滤器,但它仍在源中转换&&

所以它输出’而不是’

编辑:意识到我应该说“占有”而不是“复数”:)

0 投票
1 回答
114 浏览

php - 什么更有效:用树枝过滤器填充变量或将它们传递给控制器​​?

我最近一直在使用自己定制的树枝过滤器。我也一直在寻找提高表现的方法。

我很难区分何时应该在服务中构建函数,然后由控制器使用,或者是否应该将其改为树枝过滤器。我想知道哪个执行得更快,或者是否有任何区别?为了澄清我的问题,我想展示如何用两者填充可变照片。

树枝模板将如下所示。它只会用照片数组制作图像元素。

/content/photos.html.twig

方法 1:在控制器中传递照片变量。控制器可能会使用名为 PhotoService 的服务并调用 getReadMore 函数,同时将其传递给 twig 模板:

方法2:改用自定义树枝过滤器:

在 twig 模板中,photos 变量将像这样填充:

两种方法有什么区别吗?

0 投票
1 回答
27 浏览

php - 在循环内时出现 Twig 扩展功能错误

我有这样的树枝代码:

一切正常,但是当我只有 1 条 faq_categories 记录时,它给了我这样的错误:

这是由这行代码引起的:

{% 设置常见问题 = getFaqs( faq_category.id ) %}

似乎 faq_category.id 变为空。我不知道是什么导致这种情况发生是因为批处理过滤器?或者我在这里做了什么?

0 投票
1 回答
341 浏览

string - 我可以将 Twig 变量标记为与捕获的文本块一样安全吗?

这是一个Twig Fiddle。在那里你会注意到这个包含文件:

而这个主文件,在将文本变量传递给包含文件之前多次尝试将其标记为安全:

以下是渲染此模板的结果:

第一次尝试建立了不需要的 HTML 转义行为。策略 2 和 3 尝试使用|raw过滤器来避免转义,但都失败了。策略 4,使用set标签来捕获一大块文本,效果很好。

过滤器文档|raw说:

raw 过滤器将该值标记为“安全”,这意味着在启用了自动转义的环境中,如果 raw 是应用于它的最后一个过滤器,则不会转义此变量:

标签文档set说:

如果启用自动输出转义,Twig 只会在捕获文本块时认为内容是安全的。

除非我遗漏了一些东西,否则这些似乎是“安全”的两种不同定义,set标签下提到的一个意思是super-extra-safe

有没有办法将包含超安全HTML 的字符串文字传递到模板中,而不会用难看的块捕获set块污染我的文件?