codeigniter 4 设置会话变量 $session = \Config\Services::session(); 全球

dha*_*rmx 5 php codeigniter codeigniter-4

在 codeigniter 4 中,根据文档,我们必须将库加载为

$session = \Config\Services::session();

如果我把它写在控制器名称上面

<?php
namespace App\Controllers;

    $session = \Config\Services::session();

    class Home extends BaseController
    {

    }
Run Code Online (Sandbox Code Playgroud)

我无法在任何函数中访问 $session 变量,即使我在 __construct 中编写它,它也无法在任何函数中访问,如果我编写任何函数,那么只有它可以工作,但我想全局设置它。

dha*_*rmx 2

我解决了,如下

<?php
namespace App\Controllers;




class Home extends BaseController
{

    protected $session;


    function __construct()
    {

        $this->session = \Config\Services::session();
        $this->session->start();


    }



    public function code4()
    {

        $newdata = [
                'username'  => 'johndoe',
                'email'     => 'johndoe@some-site.com',
                'logged_in' => TRUE
        ];

        $this->session->set($newdata); // setting session data


        echo $this->session->get("username");

    }

    //--------------------------------------------------------------------

}
Run Code Online (Sandbox Code Playgroud)