2009-07-31 2 views
1

я думаю, что я не могу видеть дерево в лесу ..Zend_Layout с частичным видом - заданное значение через контроллер Index

Иам с использованием Zend Framework, с layout.phtml которым оказывает и частичное

<?php echo $this->partial('_header.phtml') ?> 

Моя цель состоит в том, чтобы сделать форму из моего IndexController в «_header.phtml» с

<?php echo $this->form; ?> 

Как я могу передать форму с частичным видом?

ответ

9

Просмотреть частичные части визуализированы с помощью чистой области переменных ... То есть они не наследуют переменные вида от вызывающего Zend_View экземпляра.

Там в несколько вариантов, доступных для вас здесь:

Один, просто звоните:

echo $this->render('_header.phtml'); 

вместо того, чтобы использовать частичный. Этот файл будет иметь доступ ко всем вашим переменным вида, поэтому вы можете просто назначить форму своему представлению в своем контроллере, как и все остальное.

Другой способ явно передать свою форму в качестве переменной для частичной, так как:

echo $this->partial('_header.phtml', array('form' => $this->form)); 
// $this->form inside your partial will be your form 

Другой вариант является либо использовать заполнители, или сегменты ответа макета. Вот пример заполнителей:

В вашем _header.phtml или макет ... где бы вы хотите, чтобы форма для визуализации:

<?php echo $this->placeholder('header'); ?> 

И в контроллере:

$this->view->placeholder('header')->append($form); 
// I'm not sure, but you _may_ want to pass in $form->render() here. 
// I can't remember if implode() (which is used in placeholders internally) 
// will trigger the __toString() method of an object. 

Это имеет добавлен бонус, чтобы не загрязнять ваш экземпляр представления одноразовыми переменными, такими как форма.

Примечание. Я свяжусь с страницами руководства, как только сайт ZF будет резервным; 1.9 сегодня, поэтому обновление сайта в настоящее время.

Вот некоторые соответствующие страницы руководства:

+0

Wonderfull ответ, спасибо – opHASnoNAME

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