Я хотел бы включить несколько представлений в представление в ZF2.
Я прочитал эту ссылку:
http://framework.zend.com/manual/current/en/modules/zend.view.quick-start.html
но есть проблема. Таким образом, я должен передать значения, которые находятся в представлении, например так:
$secondView = new ViewModel (array('var1' => $var1 ......));
В этом режиме контроллер и второе действие обходятся.
Есть ли способ включить представление, не обходя их? Я хотел бы, чтобы переменные передавались из второго контроллера действий, как оператор включения php
Если я правильно понял ваш вопрос, я думаю, что то, что вы спрашиваете, невозможно.
Моим предложением было бы перенести поиск данных, которые вам нужны для второго просмотра, куда-то еще, от контроллера, и вызвать его как со второго контроллера, так и сформировать первый контроллер для передачи их во второй просмотр.
Если вы действительно хотите продолжить свой подход, единственная возможность, которую я вижу, — это использовать вызовы javascript и ajax для получения необходимых вам партиалов.
Вы можете использовать частичные для этого.
В вашем файле module.config.php под ключом ‘view_manager’ вы определяете карту шаблона для вашей части:
'view_manager' => array(
'template_map' => array(
'myPartial' => __DIR__ . '/../view/mymodule/partial/myPartial.phtml',
),
'template_path_stack' => array(
__DIR__ . '/../view',
),
),
Затем в контейнере представления вы можете использовать это частичное с помощью View ():
<div><?php echo $this->partial('myPartial', array('var1' => 'value1'); ?></div>
Вы также можете передавать переменные в ваш частичный. На эти переменные ссылаются в вашей части, как и на любую другую переменную представления:
echo $var1;