7

我目前正在尝试使用视图的当前 url 创建一个变量。要获取 url,我使用 {% set uri = app.request.uri %} (uri 是我的变量,它是该特定视图的当前 url)。问题是,我只对使 url 唯一的原因感兴趣(它的结尾 - 数组中的唯一对象 - 恰好是 uri),而不是开头(我的应用程序的路径)。我在想我可以使用 preg_replace 来做到这一点,但 TWIG 没有这个功能。只是想知道是否有人会知道如何完成我想要做的事情?

我是 Symfony 的新手(对 PHP 也很陌生),所以我的解释可能不清楚(抱歉)。

前任。

{% set uri = app.request.uri %}

输出:http ://website.com/http://item.org/1

我想将 uri 变量修改为只有http://item.org/1(而不是我网站的路径)。

我正在考虑使用 preg_replace 创建一个 Twig 扩展将允许我这样做..但不确定这是否是最好的方法(没有经验)。


总体目标:视图中“uri”的唯一值由具有属性的对象数组($results)中的另一个视图附加到网站路径,其中一个是“uri”。我的最终目标是仅显示 $results 数组中对象的所有关联属性(或行)。我想我可以通过首先在 foreach 中创建一个键(我的 uri 变量)并返回数组中与该键匹配的行来做到这一点。这就是为什么我尝试使用 url 创建一个变量,以便我可以将它用作我的 foreach 循环的键来迭代 $results。我没有使用数据库或 Doctrine。

提前感谢您的帮助!

4

3 回答 3

4

最好的方法是将逻辑从模板移动到控制器。

如果您需要在 twig 中使用 preg_replace,则必须创建自定义扩展

于 2013-07-10T15:35:45.527 回答
0

似乎有人为 preg_replace 创建了 Twig 扩展,请参阅https://github.com/victor-in/Craft-TwigPCRE

于 2015-02-19T13:55:51.243 回答
0

你可以这样做。这有点难看,但它有效。

uri|split('base_path')|join('')
于 2019-02-14T22:05:27.080 回答