我正在測驗新的 laravel 9,我很遺憾地遇到了這個驚喜。
在傳入更新功能上使用PHP artisan make:request UpdateUserRequest并將其設定為我的請求類后,會發生此錯誤:
[2022-02-09 12:42:08] local.ERROR: Object of type Illuminate\Session\Store is not callable {"userId":2,"exception":"[object] (Error(code: 0): Object of type Illuminate\\Session\\Store is not callable at /app/vendor/symfony/http-foundation/Request.php:698)
我的代碼
用戶控制器:
public function update(UpdateUserRequest $request){}
更新用戶請求:
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return true;
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
//
];
}
}
到目前為止,我試圖解決這個問題所做的就是看看它什么時候發生。當我將 UpdateUserRequest 的擴展類從 FormRequest 更改為 Request 時,不會發生錯誤。所以它似乎在FormRequest中。
在我的路由中添加了“網路”中間件也沒有解決問題(來自互聯網的建議)
我當然可以創建自己的類,它不擴展任何東西,只是通過使用常規的 Request 類來驗證它,但這當然不是它應該如何作業的。
完整的堆疊跟蹤:
Error:
Object of type Illuminate\Session\Store is not callable
at /app/vendor/symfony/http-foundation/Request.php:698
at Symfony\Component\HttpFoundation\Request->getSession()
(/app/vendor/laravel/framework/src/Illuminate/Http/Request.php:424)
at Illuminate\Http\Request::createFrom(object(Request), object(UpdateUserRequest))
(/app/vendor/laravel/framework/src/Illuminate/Foundation/Providers/FormRequestServiceProvider.php:34)
at Illuminate\Foundation\Providers\FormRequestServiceProvider->Illuminate\Foundation\Providers\{closure}(object(UpdateUserRequest), object(Application))
(/app/vendor/laravel/framework/src/Illuminate/Container/Container.php:1269)
at Illuminate\Container\Container->fireCallbackArray(object(UpdateUserRequest), array(object(Closure)))
(/app/vendor/laravel/framework/src/Illuminate/Container/Container.php:1216)
at Illuminate\Container\Container->fireResolvingCallbacks('App\\Http\\Requests\\UpdateUserRequest', object(UpdateUserRequest))
(/app/vendor/laravel/framework/src/Illuminate/Container/Container.php:778)
at Illuminate\Container\Container->resolve('App\\Http\\Requests\\UpdateUserRequest', array(), true)
(/app/vendor/laravel/framework/src/Illuminate/Foundation/Application.php:854)
at Illuminate\Foundation\Application->resolve('App\\Http\\Requests\\UpdateUserRequest', array())
(/app/vendor/laravel/framework/src/Illuminate/Container/Container.php:694)
at Illuminate\Container\Container->make('App\\Http\\Requests\\UpdateUserRequest', array())
(/app/vendor/laravel/framework/src/Illuminate/Foundation/Application.php:839)
at Illuminate\Foundation\Application->make('App\\Http\\Requests\\UpdateUserRequest')
(/app/vendor/laravel/framework/src/Illuminate/Routing/RouteDependencyResolverTrait.php:79)
at Illuminate\Routing\ControllerDispatcher->transformDependency(object(ReflectionParameter), array('user' => '10'), object(stdClass))
(/app/vendor/laravel/framework/src/Illuminate/Routing/RouteDependencyResolverTrait.php:48)
at Illuminate\Routing\ControllerDispatcher->resolveMethodDependencies(array('user' => '10'), object(ReflectionMethod))
(/app/vendor/laravel/framework/src/Illuminate/Routing/RouteDependencyResolverTrait.php:28)
at Illuminate\Routing\ControllerDispatcher->resolveClassMethodDependencies(array('user' => '10'), object(UserController), 'update')
(/app/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:41)
at Illuminate\Routing\ControllerDispatcher->dispatch(object(Route), object(UserController), 'update')
(/app/vendor/laravel/framework/src/Illuminate/Routing/Route.php:261)
at Illuminate\Routing\Route->runController()
(/app/vendor/laravel/framework/src/Illuminate/Routing/Route.php:204)
at Illuminate\Routing\Route->run()
(/app/vendor/laravel/framework/src/Illuminate/Routing/Router.php:695)
at Illuminate\Routing\Router->Illuminate\Routing\{closure}(object(Request))
(/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:128)
at Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(object(Request))
(/app/vendor/spatie/laravel-permission/src/Middlewares/RoleMiddleware.php:27)
at Spatie\Permission\Middlewares\RoleMiddleware->handle(object(Request), object(Closure), 'superadmin')
(/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:167)
at Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(object(Request))
(/app/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php:50)
at Illuminate\Routing\Middleware\SubstituteBindings->handle(object(Request), object(Closure))
(/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:167)
at Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(object(Request))
(/app/vendor/laravel/framework/src/Illuminate/Auth/Middleware/Authenticate.php:44)
at Illuminate\Auth\Middleware\Authenticate->handle(object(Request), object(Closure), 'web')
(/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:167)
at Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(object(Request))
(/app/vendor/laravel/framework/src/Illuminate/Auth/Middleware/Authenticate.php:44)
at Illuminate\Auth\Middleware\Authenticate->handle(object(Request), object(Closure))
(/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:167)
at Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(object(Request))
(/app/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php:78)
at Illuminate\Foundation\Http\Middleware\VerifyCsrfToken->handle(object(Request), object(Closure))
(/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:167)
at Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(object(Request))
(/app/vendor/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php:49)
at Illuminate\View\Middleware\ShareErrorsFromSession->handle(object(Request), object(Closure))
(/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:167)
at Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(object(Request))
(/app/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php:121)
at Illuminate\Session\Middleware\StartSession->handleStatefulRequest(object(Request), object(Store), object(Closure))
(/app/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php:64)
at Illuminate\Session\Middleware\StartSession->handle(object(Request), object(Closure))
(/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:167)
at Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(object(Request))
(/app/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php:37)
at Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse->handle(object(Request), object(Closure))
(/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:167)
at Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(object(Request))
(/app/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php:67)
at Illuminate\Cookie\Middleware\EncryptCookies->handle(object(Request), object(Closure))
(/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:167)
at Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(object(Request))
(/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:103)
at Illuminate\Pipeline\Pipeline->then(object(Closure))
(/app/vendor/laravel/framework/src/Illuminate/Routing/Router.php:697)
at Illuminate\Routing\Router->runRouteWithinStack(object(Route), object(Request))
(/app/vendor/laravel/framework/src/Illuminate/Routing/Router.php:672)
at Illuminate\Routing\Router->runRoute(object(Request), object(Route))
(/app/vendor/laravel/framework/src/Illuminate/Routing/Router.php:636)
at Illuminate\Routing\Router->dispatchToRoute(object(Request))
(/app/vendor/laravel/framework/src/Illuminate/Routing/Router.php:625)
at Illuminate\Routing\Router->dispatch(object(Request))
(/app/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php:167)
at Illuminate\Foundation\Http\Kernel->Illuminate\Foundation\Http\{closure}(object(Request))
(/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:128)
at Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(object(Request))
(/app/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php:21)
at Illuminate\Foundation\Http\Middleware\TransformsRequest->handle(object(Request), object(Closure))
(/app/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php:31)
at Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull->handle(object(Request), object(Closure))
(/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:167)
at Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(object(Request))
(/app/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php:21)
at Illuminate\Foundation\Http\Middleware\TransformsRequest->handle(object(Request), object(Closure))
(/app/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php:40)
at Illuminate\Foundation\Http\Middleware\TrimStrings->handle(object(Request), object(Closure))
(/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:167)
at Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(object(Request))
(/app/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php:27)
at Illuminate\Foundation\Http\Middleware\ValidatePostSize->handle(object(Request), object(Closure))
(/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:167)
at Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(object(Request))
(/app/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php:86)
at Illuminate\Foundation\Http\Middleware\PreventRequestsDuringMaintenance->handle(object(Request), object(Closure))
(/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:167)
at Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(object(Request))
(/app/vendor/fruitcake/laravel-cors/src/HandleCors.php:38)
at Fruitcake\Cors\HandleCors->handle(object(Request), object(Closure))
(/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:167)
at Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(object(Request))
(/app/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php:39)
at Illuminate\Http\Middleware\TrustProxies->handle(object(Request), object(Closure))
(/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:167)
at Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(object(Request))
(/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:103)
at Illuminate\Pipeline\Pipeline->then(object(Closure))
(/app/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php:142)
at Illuminate\Foundation\Http\Kernel->sendRequestThroughRouter(object(Request))
(/app/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php:111)
at Illuminate\Foundation\Http\Kernel->handle(object(Request))
(/app/public/index.php:52)
uj5u.com熱心網友回復:
這確實不是 laravel 9 的問題。這個問題是從 laravel-dev 升級到正式版本。
由于撰寫的代碼不多,我決定克隆新的 laravel 9 存盤庫,并將我的更改手動推送到這個新的存盤庫。然后一切正常。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/425395.html
