Лучший способ показать информацию о пользователе в макете Zend - PullRequest
2 голосов
/ 05 сентября 2011

Я пытаюсь показать информацию о пользователе в моем приложении Zend Framework. Я использую один скрипт макета для всех контроллеров (кроме контроллера входа в систему). А теперь я хочу показать информацию о зарегистрированном пользователе (эта раскладка используется только на контроллерах с зарегистрированными пользователями).

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

Итак, вопрос в том, как лучше всего этого достичь?

1 Ответ

2 голосов
/ 05 сентября 2011

Я использую помощник действий для этой цели. Вы можете получить информацию о пользователе и добавить ее в представление. Примерно так:

class My_LayoutHelper extends Zend_Controller_Action_Helper_Abstract {
    /**
     * Predispatch hook.
     */
    public function preDispatch()
    {
        $view = $this->getActionController()->view;

        // Get the user data from wherever you have them
        $userInfo = getUserInfo();

        // Inject it into the view
        $view->username = $userInfo->name;
    }
}

А в макете скрипта можно написать

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

везде, где нужно.

Больше информации о помощниках действий здесь: http://devzone.zend.com/article/3350

Надеюсь, это поможет ...

...