Передача параметров в ветке (из шаблона в другой шаблон)

Parent:
       {% block row -%}{% endblock %}    
Child:
      {% block row -%}
      {{ parent() }}
      {% set boy = {
          'name': 'foo',
          'age': 12,
        }
      %}
      {% endblock %}    

Мой вопрос: как передать объект мальчика Родителю (без потери его значения)?


person ajthewebdev    schedule 19.12.2013    source источник
comment
Вы пытались отобразить boy в родительском шаблоне? Выдает ошибку?   -  person A.L    schedule 19.12.2013


Ответы (2)


Я не думаю, что это хорошая идея помещать какую-либо бизнес-логику в ваш шаблон. Если вам нужен объект мальчика в вашей родительской теме, вы должны вместо этого определить его в своем контроллере и передать его в шаблон. И родительский, и дочерний шаблоны могут получить доступ к этому объекту.

person dtengeri    schedule 19.12.2013
comment
Я попытался инициализировать boy object в контроллере, но проблема заключалась в том, что значение объекта boy меняется каждый раз, когда вызывается Child. И к тому времени, когда он мне понадобится (в Parent), он уже потерял свою ценность. - person ajthewebdev; 19.12.2013

Вы можете сделать что-то вроде:

{% extends 'ProjectCommonBundle:Email:base.html.twig' %}

{# set the vars you need on your base layout #}
{% set organization = organization %}
{% set emailTo = emailTo %}

{% block body %}

{% endblock %}
person João Alves    schedule 19.12.2013
comment
Это не работает. Значение остается в исходном состоянии (но не должно) - person ajthewebdev; 19.12.2013
comment
Вы можете показать нам полный код? родительский шаблон и дочерний. - person João Alves; 19.12.2013
comment
Я нашел, вместо {% extends нужно было использовать {% embed - person ajthewebdev; 20.12.2013