Zend доступ к данным пользователя во всех контроллерах - PullRequest
1 голос
/ 28 июня 2011

Искал и искал какое-то руководство, но, похоже, ничего не получилось.Я хочу получить доступ к пользовательским данным в любом контроллере индекса, чтобы сохранить повторяющийся код.Я создал ACTION HELPER, который вызывает сеанс и возвращает данные пользователей.Ниже, как я все это реализовал.Вызов помощника работает, но я не могу получить данные на любом контроллере.

Application.ini

autoloaderNamespaces [] = "ZC"

Bootstrap.php

protected function _initActionHelpers()
{
Zend_controller_Action_HelperBroker::addHelper(new ZC_Action_Helpers_User());   
}

User.php

<?php

    Class ZC_Action_Helpers_User extends Zend_Controller_Action_Helper_Abstract
    {       
    public function direct()
        {
            $storage = new Zend_Auth_Storage_Session();
            $data = $storage->read();
            $this->_user = $data;        
        }    
    }

IndexController.php

<?php

class IndexController extends Zend_Controller_Action
{
    public function indexAction()
    {

        $this->_helper->user;

    }

У меня нет проблем с кодом, но, например, скажите, как мне получить USERNAME или USERID изПомощник ???

Спасибо, что нашли время, чтобы посмотреть на это.

J

Ответы [ 2 ]

2 голосов
/ 28 июня 2011

Во-первых, функция вашего плагина должна возвращать информацию о пользователе, а не устанавливать ее как переменную класса:

Class ZC_Action_Helpers_User extends Zend_Controller_Action_Helper_Abstract
{       
public function direct()
    {
        $storage = new Zend_Auth_Storage_Session();
        $data = $storage->read();
        return $data;        
    }    
}

Тогда вы можете использовать плагин в любом контроллере, который вам нужен:

$user  = $this->_helper->User->Direct()

Возможно, вы захотите переименовать некоторые из этих функций и классов.

0 голосов
/ 28 июня 2011

Попробуйте объявить в пути начальной загрузки к помощникам ...

Zend_Controller_Action_HelperBroker::addPath(
        APPLICATION_PATH .'/controllers/helpers');

Далее используйте Google для этого простого вопроса .... Как использовать помощника в ZF

...