2013-11-02 2 views
1

Раньше я работал с CodeIgniter. Теперь я начинаю изучать Symfony2. Мне просто интересно, в CodeIgniter я могу загрузить представление из другого представления. Например, я мог загрузить menu.php из index.php. Это, как я делал это -Как загрузить представление из представления?

//in index.php 
<?php $this->load->view('menu.php'); ?> 

Можно ли сделать то же самое в Symfony2 и Twig?

ответ

2

Есть несколько способов, которыми вы можете это сделать, в зависимости от того, что вы пытаетесь выполнить.

Если вы хотите отдать ответ контроллера, вы можете сделать это в своем шаблоне ветки.

{{ render(controller('AcmeArticleBundle:Article:recentArticles', { 
     'max': 3 
})) }} 

В приведенном выше примере переданный параметр max будет передан в качестве аргумента вашему контроллеру. Тогда контроллер будет отвечать за возврат ответа, который будет вставлен в представление, откуда он был вызван.

Вы также можете использовать include для визуализации только шаблона прут как внедренное зрение:

{% for article in articles %} 
    {{ include(
     'AcmeArticleBundle:Article:articleDetails.html.twig', 
     { 'article': article } 
    ) }} 
{% endfor %} 

В приведенном выше примере article будет переданы в контекст шаблона веточки articleDetails.html.twig но не к любому контроллеру. Поэтому этот метод идеально подходит для повторяющегося фронтального кода, который используется во многих местах, таких как шаблоны для таблиц, списков, боковые панели и т.д.

http://symfony.com/doc/current/book/templating.html#including-other-templates http://twig.sensiolabs.org/doc/functions/include.html

+0

Большое спасибо. Это просто я хотел. Будьте здоровы. –

Смежные вопросы