Ответ 1
Я думаю, вы можете сделать $uid = $this->Auth->user('id');
- проверить api: http://api.cakephp.org/class/auth-component#method-AuthComponentuser
Кажется, это двухэтапный процесс, чтобы получить это,
$u = $this->Auth->user();
$uid = $u['User']['id'];
Не существует ли какой-либо переменной где-то после входа пользователя в систему? (Извините за немой вопрос.)
Я думаю, вы можете сделать $uid = $this->Auth->user('id');
- проверить api: http://api.cakephp.org/class/auth-component#method-AuthComponentuser
В CakePHP существует несколько способов получить идентификатор пользователя из сеанса, вот несколько примеров
Чтобы получить идентификатор пользователя сеанса в контроллере:
$uid = $this->Auth->User('user_id');
Чтобы получить идентификатор пользователя сеанса в представлении, используйте: (Не рекомендуется, я бы установил это в контроллере)
$uid = $this->Session->read('Auth.User.id');
Чтобы получить идентификатор пользователя сеанса в модели, используйте: (не рекомендуется, но решение)
$uid = CakeSession::read('Auth.User.id');
Я не рекомендую выше, чтобы получить идентификатор пользователя сеанса из модели, я передал бы его через контроллер, используя:
$this->Model->function($uid);
Вы также можете получить идентификатор пользователя сеанса с помощью чистого php, используйте: (хотя при использовании Cake вы должны придерживаться соглашений)
$uid = $_SESSION['Auth']['User']['id'];
И есть больше подходов, это всего лишь несколько...
Попробуйте следующее:
$this->Auth->user('id')
CakePhp 2.x:
Anywhere:
AuthComponent::user('id')
Внутри контроллера:
$this->Auth->user('id');
Вы также можете получить информацию о пользователе из сеанса, если класс Auth недоступен для вас.
$this->Session->read('Auth.User.id')
Это может быть бесполезно, но у меня возникла ошибка при помощи $this->Auth->user();
Эта проблема была решена с использованием этого. Я не уверен в маршруте проблемы, но он появился при вызове функции из модели в том же действии, что и я, $this->Auth->user();
Использование AuthComponent::user('id')
решило проблемы.