2012-03-15 11 views
0

私はテンプレートから渡された変数内のトークンをコントローラから置き換え、別のテンプレートのインクルードを置き換えようとしています。概念的ような何か:Twig:変数内の任意のトークンをテンプレートに置き換えます。

// controller 
$post->content = "<p>Here's a short post that an enduser wrote. The enduser wants 
    product info to appear here: %product_info_here%. Over and out.</p>"; 

// Twig template 
<div class="content"> 
    {{ post.content 
    | replace({ '%product_info_here%': include('product_info.html.twig') }) }} 
</div> 

小枝コードを見て開始してからは、それが彼らのコンテキストへのアクセスを持っていないフィルターのように見えるので、このを実行することができません。この機能は既に存在していますか?そうでない場合は、それを追加するための小枝アーキテクチャの正しい場所はどこですか?

UPDATE:

これは、アプリケーションが部分的に注入する場所を決定するために、エンドユーザーを有効にするためです。コントローラーにこの例を載せてみましたが、簡潔にするためでした。実際にはリテラルトークンはエンドユーザが入力したデータベースのPostレコードの一部になり、投稿コンテンツはTwigテンプレートに渡されます。 Twigテンプレートでトークンのポストコンテンツを解析し、部分的に注入したいと思います。

答えて

0

コントローラにテンプレートを挿入する理由についてもう少し説明してください。私は次のようにもうまくいくと思います:

// Twig template 
<div class="content"> 
    <p>Here's a short post. Product info: {% include('product_info.html.twig') %}</p> 
</div> 
+0

ありがとうございます;私の質問への更新を見てください。 – yitznewton

+0

私はまっすぐ進む方法を知らないが、引数としてpost.contentを渡す組み込みコントローラーを使用してこれを行うことができるはずです。 – Cerad

関連する問題