如何在树枝上做一个preg_replace

问题描述 投票:6回答:3

我目前正在尝试使用视图的当前URL创建变量。要获取网址,我使用{%set uri = app.request.uri%}(uri是我的变量,这是该特定视图的当前网址)。问题是,我只对使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。

提前谢谢你的帮助!

symfony preg-replace preg-match twig
3个回答
4
投票

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

如果你需要在树枝中使用preg_replace,你必须创建custom extension


0
投票

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


0
投票

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

uri|split('base_path')|join('')
© www.soinside.com 2019 - 2024. All rights reserved.