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 (自分の Web サイトへのパスではなく) のみを持つようにしたいと考えています。

preg_replace を使用して Twig 拡張機能を作成すると、これを実行できるようになると思いますが、それが最善の方法であるかどうかはわかりません (未経験)。


全体的な目標: ビュー内の "uri" の一意の値は、属性を持つオブジェクト ($results) の配列から別のビューによって Web サイト パスに追加されます。その 1 つは "uri" です。最終的な目標は、$results 配列内のオブジェクトに関連付けられたすべての属性 (または行) のみを表示することです。最初に foreach でキー (私の uri 変数) を作成し、このキーに一致する行を配列に返すことで、これを行うことができると考えていました。これが、$results を反復処理する foreach ループのキーとして使用できるように、url を使用して変数を作成しようとしている理由です。私はデータベースや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 に答える