1

各データ型に固有のフィルターを使用して、不明な型のデータをレンダリングする必要があります。

レンダリングされた構造は次のようになります。

array(
    "value"  => "value-to-render",
    "filter" => "filter-to-apply",
)

{% for item in items %}
    {{ item.value|item.filter|raw}}
{% endfor %}

だから私の質問は:小枝にitem.filterを値のフィルターとして使用させるにはどうすればよいですか?

4

5 に答える 5

6

名前を渡してフィルターを呼び出すフィルターを作成する必要があります。

拡張機能の最初の書き方ここで読むことができます。

拡張機能を作成したと仮定すると、カスタム関数 (例: customFilter) を定義したことになります。

//YourTwigFilterExtension.php

public function getFunctions()
{
    return array(
        ...
        'custom_filter' => new \Twig_Function_Method($this, 'customFilter'),
    );
}

次に、この関数を定義する必要があります

public function customFilter($context, $filterName)
{
    // handle parameters here, by calling the 
    // appropriate filter and pass $context there
}

この操作の後、Twig で呼び出すことができるようになります:

{% for item in items %}
    {{ custom_filter(item.value, item.filter)|raw  }}
{% endfor %}

または、フィルターを (関数としてではなく) フィルターとして定義した場合:

{% for item in items %}
    {{ item.value|custom_filter(item.filter)|raw  }}
{% endfor %}
于 2012-08-26T13:41:10.943 に答える
0

この質問は、私の質問の1つに直接リンクされています。

変数内に変数を表示

答えは、まだ(しかしすぐに)存在しない一種の「評価」メソッドが必要だということです。ただし、@ thecatontheflatが言及しているように、独自の関数を作成することもできます。

于 2012-08-27T11:21:50.723 に答える