Поскольку это относится к зарегистрированному пользователю, вы должны сделать это один раз и сохранить данные в сеансе. Если вы используете AuthComponent (что вам, вероятно, следует), то уже существует универсальный способ узнать, вошел ли пользователь в систему и какой у него идентификатор:
$this->Auth->user('id');
Все остальные данные пользовательской модели доступны таким же образом. Это просто сохраняется в сеансе под ключом 'Auth'
и доступно как $this->Session->read('Auth.User.id')
. Если вы хотите сохранить еще больше данных о пользователе в сеансе (например, связанные элементы или еще что-то), сделайте это один раз в методе login
.
function beforeFilter() {
$this->Auth->autoRedirect = false;
}
function login() {
if ($this->Auth->user()) {
$item = /* find item */;
$user = /* find user */;
$this->Session->write('Auth.Item', $item);
$this->Session->write('Auth.User', $user);
$this->redirect($this->Auth->redirect());
}
}