Cake 3.x如何使用名为SessionsController的控制器进行数据库会话?

Kim*_*cks 7 session cakephp cakephp-3.0

蛋糕版3.1.2

我做了什么:

  1. 在MySQL数据库中运行以下查询:

    CREATE TABLE `sessions` (
      `id` varchar(255) NOT NULL DEFAULT '',
      `data` BLOB, -- or BYTEA for PostgreSQL
      `expires` int(11) DEFAULT NULL,
       PRIMARY KEY (`id`)
    );
    
    Run Code Online (Sandbox Code Playgroud)
  2. 更改 app.php

    'Session' => [
        'defaults' => 'database',
    ],
    
    Run Code Online (Sandbox Code Playgroud)

我想要的:

有一个 SessionsController.php

所以我可以:

  • /sessions/add 作为登录页面和操作(允许GET和POST)
  • /sessions/delete 作为注销页面和操作(允许GET和DELETE)
  • /admin/sessions/delete 作为管理员后端注销某些用户的一种方式(允许DELETE)
  • /admin/sessions/index 作为一种以分页方式获取所有会话的方法(允许GET)

我心中的疑问:

  1. 我实际上是在烘焙会话实体和表吗?
  2. 我真的烘焙会话控制器吗?
  3. 即使我使用数据库来处理Session ,我甚至可以使用SessionsController 吗?如何烘焙没有默认实体或表格的控制器?

chr*_*ick 2

您遇到的大部分问题都可以在CakePHP 书中找到答案。您的问题的答案是:

  1. 我真的烘焙会话实体和表吗?
  2. 我真的烘焙会话控制器吗?

    答:不,你不必烘烤任何东西。您可以手动编写所有代码。尽管如此,我还是建议通过烘焙来建立类的框架。

  3. 即使我不使用数据库来处理会话,我是否也可以拥有 SessionsController?

    答:是的,只要遵循命名约定,您可以为控制器命名任何您想要的名称。

  4. 如何烘焙这样一个没有默认实体或表的控制器?

    答:你只要烤一下就可以了。您不必在控制器中使用默认模型或其他模型。