CakePHP $ this-> Auth-> user ('id') возвращает неверного пользователя в контроллере - PullRequest
0 голосов
/ 22 февраля 2012

У меня действительно странная ошибка, возникающая в приложении CakePHP, над которым я работал.

У меня есть следующий метод в моем users_controller.php, который читает текущего вошедшего в систему пользователя и отправляет данные в представление и устанавливает title_for_layout для имени пользователя: -

function account() {
    $this->User->id = $this->Auth->user('id');
    $this->set('User', $this->User->read());
    $this->set('title_for_layout', 'Welcome '.$this->User->Contact->field('name'));
}

На мой взгляд, у меня есть (между прочим): -

<?php echo $User['Contact']['name'] ?>

Все в представлении выглядит хорошо. Он выводит поля для правильного пользователя (того, в котором я в данный момент вошел как). Однако title_for_layout использует совершенно другие данные пользователя. Так что $this->User->Contact->field('name') не то же самое, что $User['Contact']['name']!

Я не могу определить, что здесь происходит, так что надеюсь, что кто-то там укажет на мою ошибку.

1 Ответ

2 голосов
/ 22 февраля 2012

Модель read() просто делает find('first'), устанавливает результат как Модель $data и возвращает его.Он не устанавливает $id s связанных моделей.

Итак, в вашем случае $this->User->id установлено, но $this->User->Contact->id нет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...