session - 如何在cakephp 3.0 中删除 session ?

标签 session cakephp cakephp-3.0

所有代码都在一个 Controller 中

我的代码是这样的。

    public function login()
    {
    $session = $this->request->session();
    $session_event_id = $session->read('Events.event_id');
    $session_division_id = $session->read('Events.division_id');

    if(!$session_event_id || !$session_division_id) {
        $event_table = TableRegistry::get('Events');
        $event = $event_table->find('all', ['fields' => ['id'], 'order' => 'id desc'])->first();
        $session->write('Events.event_id', $event->id);
        $session_event_id = $session->read('Events.event_id');

        $division_table = TableRegistry::get('Divisions');
        $division = $division_table->find('all',['fields' => ['id'], 'conditions' => ['event_id' => $event->id]])->first();
        $session->write('Events.division_id', $division->id);
        $session_division_id = $session->read('Events.division_id');
    }
    }

通过上面的代码,我可以写入和读取 session 值,但是在注销时我想删除那些 session 数据

public function logout()
{    
    $session = $this->request->session();
    $this->$session->delete();
    return $this->redirect($this->Auth->logout());
}

Warning (4096): Object of class Cake\Network\Session could not be converted to string [APP/Controller/UsersController.php, line 56]

Notice (8): Object of class Cake\Network\Session to string conversion [APP/Controller/UsersController.php, line 56]

Error: Call to a member function delete() on a non-object File /var/www/html/MEX/src/Controller/UsersController.php

最佳答案

你正在寻找$this->request->session()->destroy();

http://book.cakephp.org/3.0/en/development/sessions.html#destroying-the-session

只是一个提示 - 为这么小的函数存储变量 $session 没有多大意义,因为 $session 的重用不是必需的。我将 $this->request->session(); 存储在变量中的唯一情况是当我访问 session 以在同一个函数中进行多次读写时。

(就错误而言,@Eagle 是正确的,因为您通过使用该存储变量引用了 '$this' 两次。)

关于session - 如何在cakephp 3.0 中删除 session ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30350425/

相关文章:

hibernate - session 与 session 工厂之间的区别 - Hibernate?

php - CakePHP 查询生成器没有为新列提供别名

arrays - cakephp 将树放入数组中

php - 使用 CakePHP 3 进行 i18n 翻译

mysql - cakePHP 3.0 一对多关系

php - cakephp 3.x 中为不同模型在一页上创建多个表单

node.js - 最安全的 node.js/express 认证机制

php - Opera Mini 和 PHP session

session - 从 socket.io 回调中修改 session 数据

javascript - Cakephp、JsHelper 在 "update"上调用 JavaScript 函数?