如何在cake php 3.2的ctp(模板/视图文件)中获取会话存储值?

时间:2016-02-11 11:47:23

标签: php session cakephp cakephp-3.0

这里我在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的新手 任何建议都会高度赞赏 。提前谢谢你。

1 个答案:

答案 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