Должны ли заполнители быть изменены из контроллеров? - PullRequest
0 голосов
/ 19 апреля 2011

Допустим, у меня есть простой веб-сайт, где пользователи могут войти в систему. Когда они вошли в систему, я хочу показать им другое сообщение, чем пользователи, которые не являются (гостями).Это сообщение должно отображаться в заполнителе, добавляя к нему сообщение.

Где это должно быть сделано?Я думал о том, чтобы мой контроллер проверил, вошел ли пользователь в систему или нет, и затем добавил к заполнителю через $this->view->placeholder("sidebar")->append()

Ответы [ 3 ]

2 голосов
/ 19 апреля 2011

Почему бы просто не поместить его в сам макет?

Например, у меня часто возникает следующая ситуация, которая влияет на мой макет: если пользователь вошел в систему, я хочу отобразить его имя пользователя, ссылку для просмотра / редактирования его профиля и ссылку для выхода из системы.Если он не залогинен, то я показываю ему ссылку для входа и ссылку для регистрации.

Код для обработки всего этого использует Zend_Auth::hasIdentity(), Zend_Auth::getIdentity() и url() view-helper.Чтобы сделать код компоновки немного проще, я часто помещаю все это в свой собственный помощник вида, называемый что-то вроде authLinks().

2 голосов
/ 19 апреля 2011

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

Я бы лично выбрал его в плагине контроллера , поскольку он абстрагируется от необходимости проверять состояние аутентификации и обновлять представление вдали от контроллеров, а также избавляет вас от необходимости беспокоиться о введении соответствующего кода любые контроллеры, которые вы создадите в будущем.

1 голос
/ 19 апреля 2011

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

...