CakePHP Acessing полная информация о пользователе - PullRequest
0 голосов
/ 28 сентября 2011

Я очень новичок в CakePHP, и мне было просто интересно, может ли кто-нибудь помочь мне с парой вещей. У меня есть класс User и класс Image.

В моем users_controller.php у меня есть следующие функции

function beforeFilter(){
    $this->userOb = $this->User->find();
}
function beforeRender(){
    $this->set('userOb', $this->userOb);
}

Это прекрасно работает, и я могу видеть объект в моем представлении со всеми правильными отношениями к классу Image.

Но при этом перезаписываются функции beforeFilter () и beforeRender () в моем app_controller.php, поэтому я пытаюсь переместить эту функцию в свой app_controller.php, но получаю ошибку (неопределенное свойство: PagesController :: $ User)

Кроме того,

$this->Auth->user();

не имеет полной карты объектов, которая

$this->User->find();

возвращается.

Итак, я предполагаю, что мой вопрос заключается в том, как мне создать переменную, доступную во всех моих представлениях, т.е. она определена в app_controller.php, которая содержит текущий зарегистрированный пользовательский объект и его отношения.

Спасибо.

Ответы [ 2 ]

1 голос
/ 28 сентября 2011

поместите результат поиска в SessionComponent , чтобы вам не приходилось выполнять запрос для каждого запроса (и устанавливать переменную в beforeRender).В представлении вы можете получить к нему доступ с помощью SessionHelper.$ This-> Auth-> пользователя ();иметь только запись пользователя.

1 голос
/ 28 сентября 2011

Если проблема в том, что ваши родительские методы перезаписываются дочерними методами, просто вызовите родительский метод в дочернем методе, см. Ниже:

function beforeFilter(){
    parent::beforeFilter();
    $this->userOb = $this->User->find();
}
function beforeRender(){
    parent::beforeRender();
    $this->set('userOb', $this->userOb);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...