这里我在php文件中登录后使用下面的代码
echo $get_user_id=$this->Auth->user('id');//getting out put 9
但如果我在登录后在ctp中使用此功能
<?= $this->Form->input('id', ['type'=>'hidden1','value'=>$get_user_id]); ?>
错误即将来临。
我以另一种方式完成了它,但它仍然无效。 登录后我以这种方式存储了id。
$session = $this->request->session();
$session->write('User_id', $this->Auth->user('id'));
echo $session->read('User_id');//9
并尝试以这种方式在ctp文件中获取此值。
<?= $this->Form->input('id', ['type'=>'hidden1','value'=>$session->read('User.id')]); ?>
但是,它仍然没有出现。只有当我将此值设置为ctp
时才会出现$get_user_id = $this->Auth->user('id');
$this->set(compact('get_user_id'));
<?= $this->Form->input('id', ['type'=>'hidden1','value'=>$get_user_id); ?>//ctp file
有没有办法可以直接登录后获取会话存储ID(不使用set。) 在cakephp 2X版本中,更容易在ctp中获取会话存储值 但不是在cakephp 3X 。抱歉,我是cakephp 3X的新手 任何建议都会高度赞赏 。提前谢谢你。
答案 0 :(得分:3)
你应该使用Auth然后用户
$session = $this->request->session();
$session->read('Auth.User.id')
或
$this->request->session()->read('Auth.User')
更多信息 - http://book.cakephp.org/3.0/en/development/sessions.html#accessing-the-session-object