如何在Cakephp 3.0中读写Session

Amu*_*ena 8 session cakephp-3.0

我是蛋糕3.0的新手.我已阅读http://book.cakephp.org/3.0/en/development/sessions.html上的文档 但我无法编写会话.

use Cake\Network\Session\DatabaseSession;

$session->write('Config.language', 'eng'); 
$session->read('Config.language');
Run Code Online (Sandbox Code Playgroud)

Jun*_*Jun 19

你需要设置$ session:

$session = $this->request->session();
$session->write('Config.language', 'eng'); 
$session->read('Config.language');
Run Code Online (Sandbox Code Playgroud)

然后你就可以在你的会话中阅读和写作了

或者你可以直接读写:

$this->request->session()->write('Config.language', 'eng');
$this->request->session()->read('Config.language');
Run Code Online (Sandbox Code Playgroud)


shu*_*715 5

3.6.0及以上版本使用getRequest()getSession() 文档

$name = $this->getRequest()->getSession()->read('User.name');
Run Code Online (Sandbox Code Playgroud)

如果您多次访问会话,您可能需要一个局部变量。

$session = $this->getRequest()->getSession();
$name = $session->read('User.name');
Run Code Online (Sandbox Code Playgroud)

  • 恰恰相反。在文档中它说“// 3.6.0 之前使用 session() 代替。”。您可以在[此处]查看文档(https://book.cakephp.org/3/en/development/sessions.html#accessing-the-session-object) (3认同)