47

小枝テンプレートにこのようなものがあると想像してください

{% block posLeft %}
   -----
{%endblock%}

次を呼び出さずに posLeft ブロックの存在を確認する方法はありますか?

block("posLeft") 

そして、posBlock の戻り値をチェックして存在を確認します。私は Symfony2 + Twig の初心者です。

4

6 に答える 6

83

コンテンツがある場合にのみ特定のブロックを表示したい場合は、このように解決できます。希望、これはあなたが探しているものです。

例 index.html.twig

{% set _block = block('dynamic') %}
{% if _block is not empty %}
    {{ _block|raw }}
{% endif %}

例 part.html.twig

{% extends "index.html.twig" %}

{% block dynamic %}
    Block content goes here.
{% endblock %}
于 2012-12-10T18:18:18.567 に答える
19

次のように実行できます。

{% if block('posLeft') %}
  ...
{% endif %}

ただし、レンダリングされたブロックの出力が必要な場合は効率的ではありません。したがって、ブロック出力が必要な場合は、最初に変数に割り当ててから アサーションを実行する必要があります

于 2013-01-16T15:44:59.130 に答える