пытаясь показать переменную в моем макете - PullRequest
2 голосов
/ 30 марта 2010

у меня простой вопрос

где мой код неверен?

в контроллере индекса и действии индекса

я положил

$this->view->username="user1";

и когда я пытаюсь в моем макете я использую

echo $this->username;

я получил ошибку или нулевое значение

Примечание: при попытке получить свойство необъекта в D: \ Zend \ Apache2 \ htdocs \ test \ application \ layouts \ layout.phtml в строке 115

спасибо

Ответы [ 2 ]

0 голосов
/ 30 марта 2010

Ваш макет, в котором вы пытаетесь отобразить переменную, не является вашим представлением .

По сути, этого не может быть. Позвольте мне объяснить: ваш макет является global , ну, макет. Что-то особенное для indexAction () IndexController логически (/ должно быть) недоступно в глобальном макете, поскольку ваш макет не будет иметь эту переменную, если вы в конечном итоге вызовете, скажем, barAction () FooController .

Ваше представление будет в views / scripts / index / index.phtml - здесь вы можете использовать <?php echo $this->username; ?>

Я еще не работал с переменными в макетах, но это то, что я почерпнул из документации : если вы хотите, чтобы в вашем макете отображалась переменная, попробуйте использовать $this->_helper->layout->username = "user1" в своем действии , это должно позволить вам использовать echo $this->layout()->username в макете.

Будьте осторожны, однако, если вы используете переменные макета, вы также должны устанавливать их в каждом действии. Если вы просто хотите, чтобы ваша indexAction () показывала имя пользователя, попробуйте добавить эхо в ваше представление.

0 голосов
/ 30 марта 2010

Вы пробовали echo $this->view->username?

...