Zend_Layout с частичным представлением - установите значение через Index Controller - PullRequest
1 голос
/ 31 июля 2009

я думаю, что не вижу дерево в лесу ..

Я использую Zend Framework, с layout.phtml, который представляет и частично

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

Моя цель - отрисовать форму из моего IndexController в "_header.phtml" с

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

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

1 Ответ

9 голосов
/ 31 июля 2009

Частицы представления отображаются с чистой областью действия переменных ... То есть они не наследуют переменные представления от вызывающего экземпляра 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 запускается сегодня, поэтому сайт обновляется в настоящее время.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...