2

サイト全体で使用したい一般的なテンプレートをいくつか設定しようとしています。ユーザーをレンダリングするためにテンプレートから始めます。これを 2 つの異なるサブテンプレートに分割しました: users.html.twig (ユーザーのテーブルを表示するためのテンプレート) user.html.twig (単一のユーザーをレンダリングするためのテンプレート)

コントローラーによっては、このサブテンプレートが「含まれる」ので、ユーザーごとにいくつかのボタンを追加したい場合があります。

ユーザーを検索できるアクションがあるとします。このアクションにはテンプレート search.html.twig があります。今度は、user.html.twig を含む users.html.twig を search.html.twig に含めたいと思います。注意が必要なのは、user.html.twig でレンダリングされる単一のブロックを search.html.twig で定義したいということです。埋め込みで試しましたが、残念ながら何もレンダリングされません:

search.html.twig

{% embed 'StregoUserBundle:Entity:users.html.twig' with {'users': results, 'perRow' : 3} %}
            {% block user_additional %}
                    TOOOOOOOOOOOOP
            {% endblock user_additional %}
{% endembed %}

users.html.twig

{% block user_table %}
    {% for user in users %} 
        <div >
                {% embed 'StregoUserBundle:Entity:user.html.twig' with {'user': user} %}
                    {% block user_additional %}
                           {{ parent()}}
                    {% endblock user_additional %}
                {% endembed %}  
        </div>
    {% endfor %}
{% endblock user_table %}

user.html.twig

{% block single_user %}
            <div class="people-list">
            <a href="{{ path('profile_show', { 'username': user.username }) }}">
                <img src="{{ user.profilePic  | imagine_filter('profile_thumb') }}" alt="{{ user.username }}" class="img-polaroid">
            </a>
            <a href="{{ path('profile_show', { 'username': user.username }) }}"><h3>{{ user.username }}</h3></a>
            <h3><small>{{ user.firstName }} {{ user.lastName }}</small></h3>
            {% block user_additional %}
            {% endblock user_additional %}

            </div> 

{% endblock single_user %}

{{ block('XXX')}}、インクルード、埋め込み、使用などのいくつかの組み合わせを試しましたが、解決策が見つかりませんでした。

4

1 に答える 1

-1

すべきではない

{% endembed %}

なれ

   {% embeded %}
于 2013-03-26T17:15:54.460 に答える