thinkphp8 session获取失败
1.登录时创建sesion,存入user_id
<?php
namespace app\controller;
use think\annotation\route\Route;
use app\BaseController;
use think\facade\Log;
use think\facade\Request;
use app\model\UserModel;
class UserController extends BaseController
{
//创建userModel对象
protected $userModel;
public function __construct(UserModel $userModel)
{
$this->userModel = $userModel;
}
#[Route('POST','user/login')]
public function login()
{
try {
$username = Request::param('username');
$password = Request::param('password');
$user = $this->userModel->login($username, $password);
if ($user != null) {
session('user_id',$user['user_id']);
return json(['code' => 0, 'msg' => '登录成功','session'=>session('user_id')]);
} else
return json(['code' => -1, 'msg' => '用户名或密码错误']);
} catch (\Exception $e) {
return json(['error' => $e->getMessage()]);
}
}
//创建对象
public function create()
{
try {
$userId = session('user_id');
$sessionData = session();
Log::info('Session data:', $sessionData);
$data = [
'login_name' => Request::param('loginName'),
'name' => Request::param('name'),
'password' => md5(Request::param('password')),
'email' => Request::param('email'),
//从session获取是谁登录创建了新对象
'operator_id' => $userId
];
$result = $this->userModel->createUser($data);
if ($result) {
return json(['success' => true,'session'=>$userId]);
} else {
return json(['success' => false, 'message' => 'Failed to add user','session'=>$userId]);
}
} catch (\Exception $e) {
return json(['error' => $e->getMessage()]);
}
}
2.app/middleware.php文件中已经解除了Session初始化的注释,登录功能运行之后runtime/session目录下生成新的session文件,存储内容为登录时的user_id。当运行create()方法时无法获取到session中存储的user_id。