在Laravel项目升级到PHP8和laravel 9之后,所有API端点都开始获得:There is currently no session available。
完全回溯:
{
"message": "There is currently no session available.",
"status_code": 500,
"debug": {
"line": 515,
"file": "/var/www/html/vendor/laravel/framework/src/Illuminate/Http/Request.php",
"class": "Symfony\\Component\\HttpFoundation\\Exception\\SessionNotFoundException",
"trace": [
"#0 /var/www/html/vendor/dingo/api/src/Http/Request.php(39): Illuminate\\Http\\Request->getSession()",
"#1 /var/www/html/vendor/dingo/api/src/Http/Middleware/Request.php(99): Dingo\\Api\\Http\\Request->createFromIlluminate(Object(Illuminate\\Http\\Request))",
"#2 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Dingo\\Api\\Http\\Middleware\\Request->handle(Object(Illuminate\\Http\\Request), Object(Closure))",
"#3 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(116): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))",
"#4 /var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(142): Illuminate\\Pipeline\\Pipeline->then(Object(Closure))",
"#5 /var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(111): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter(Object(Illuminate\\Http\\Request))",
"#6 /var/www/html/public/index.php(52): Illuminate\\Foundation\\Http\\Kernel->handle(Object(Illuminate\\Http\\Request))",
"#7 {main}"
]
}
}项目已被文档化,Dockerfile已升级到php-8.1-apache。运行composer update后还修复了依赖项
这些是composer.json最重要的要求:
"php": "^8.1",
"dingo/api": "dev-l9-compatibility",
"laravel/framework": "^9.0",
....在我看来,错误来自于dingo api:
照明/HTTP/request.php第514行:
public function getSession(): SessionInterface
{
return $this->hasSession()
? new SymfonySessionDecorator($this->session())
: throw new SessionNotFoundException;
}发布于 2022-06-14 06:29:07
能够修复这个用于dingo的composer依赖:
"api-ecosystem-for-laravel/dingo-api": "dev-laravel-9-support"https://stackoverflow.com/questions/72215735
复制相似问题