session存储不了数据,返回null
来源:6-10 后台用户登录-数据更新和session处理
			慕粉1472091201
2020-04-14
试了很久,都找不出原因,请老师解答
1,开启中间件session
<?php
// 全局中间件定义文件
return [
    // 全局请求缓存
    // \think\middleware\CheckRequestCache::class,
    // 多语言加载
    // \think\middleware\LoadLangPack::class,
    // Session初始化
     \think\middleware\SessionInit::class
];
2.在admin文件夹下创建config文件夹,创建admin.php
<?php
return [
    'session_admin'=>'adminUsera'
];
3.使用session用config文件夹中admin文件的进行存储
<?php
namespace app\admin\controller;
use app\BaseController;
use think\facade\View;
use app\common\model\sql\AdminUser as adminUserOjb;
class Login extends BaseController
{
    public function index(){
        return View::fetch();
    }
    public function md5(){
       dump(config("admin.session_admin"));
    }
    public function check(){
        if (!$this->request->isPost()){
            return show(config("status.error"),"请求方式错误");
        }
        $username=$this->request->param('username');
        $password=$this->request->param('password');
        $captcha=$this->request->param('captcha');
        if (empty($username) || empty($password) || empty($captcha)){
           return show(config("status.error"),"数据不能为空");
        }
//判断验证码是否正确
        if (!captcha_check($captcha)){
            return show(config("status.error"),"验证码不正确");
        }
//        判断用户是否存在
        $adminUserOjb = new adminUserOjb();
        if (empty($adminUser=$adminUserOjb->getUserByName($username))){
            return show(config("status.error"),'用户不存在');
        }
        $adminUser=$adminUser->toArray();
//        判断密码是否正确
        if ($adminUser['password']!=md5($password."_singwa_abc")){
            return show(config("status.error"),'密码错误');
        }
//全部正确则更新登录数据,更新session
        $newData=[
            "last_login_ip"=>$this->request->ip(),
            "update_time"=>time(),
        ];
        if (empty($adminUserOjb->updateAdminData($adminUser['id'],$newData))){
            return show(config("status.error"),"登录失败");
        };
//全部正确,更新session  ----------------------------问题关键-------------------------------
         session(config("admin.session_admin"),$adminUser);
        return show(config("status.success"),"登录成功");
    }
}
43.登录成功后,访问md5方法,返回值为
^ "adminUsera"
写回答
	2回答
- 
				
				
同学你好,你应该这样访问,需要加入session包起来,看看有效果吗
public function md5(){
dump(session(config("admin.session_admin")));
}00 - 
				
						1014407916
2021-02-26
我也遇到了,不过我调试方法时发现是我model层的数据没有return回来所以显示null,你可以打印试试,看看$res有没有dump出数据,如果没有的话那就是因为你没有查询到数据所以显示null
00 
相似问题