Auth::user() returns Laravel 5.2 中为空
Auth::user() returns null in Laravel 5.2
我搜索并找到了如下各种结果:
和
但是,我的还是不行。
Auth::user()
在控制器中有效,但在模型中无效。它returns null
.
密码是:
public function scopeOwned($query) {
$query->where('user_id', '=', Auth::user()->id);
}
我试过 dd(Auth::user())
也试过 returns null
。
有什么想法吗?
我和Laravel 5.2有类似的问题,尝试把Auth::user()->id改成Auth::id()
public function scopeOwned($query) {
$query->where('user_id', '=', Auth::id());
}
对我有用!
谢谢大家
这里解决的问题:
https://laracasts.com/discuss/channels/laravel/authuser-returns-null-in-laravel-52
我不得不直接将堆栈添加到中间件中(而不是在组中)。
在 /Http/kernel.php:
protected $middleware = [
\Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class,
\App\Http\Middleware\EncryptCookies::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
\Illuminate\Session\Middleware\StartSession::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
\App\Http\Middleware\VerifyCsrfToken::class
];
我遇到了类似的问题。我正在为 API 组定义自定义中间件,而 Auth 始终显示为 null。
我通过在自定义中间件之前加载 EncryptCookies
中间件来修复此问题。
'api' => [
\App\Http\Middleware\EncryptCookies::class,
\App\Http\Middleware\VerifyParametersMiddleware::class, // your custom middleware, load after EncryptCookies
'throttle:60,1',
'bindings',
],
此更改可在 Kernel.php
内完成。
从接受的答案链接到的 same discussion 中,我发现以下解决方案有效。编辑您的 /routes/web.php
文件并用 Route::group('middleware' => 'web'])
包围您现有的路线,如下所示:
Route::group(['middleware' => 'web'], function () {
Auth::routes();
// The rest of your routes
});
据我所知,这不会有任何安全或其他影响,因为它只是在处理包含的路由之前加载 web
中间件。如果有人知道安全性或其他问题/后果,请 post 他们在此答案的评论中。
我搜索并找到了如下各种结果:
但是,我的还是不行。
Auth::user()
在控制器中有效,但在模型中无效。它returns null
.
密码是:
public function scopeOwned($query) {
$query->where('user_id', '=', Auth::user()->id);
}
我试过 dd(Auth::user())
也试过 returns null
。
有什么想法吗?
我和Laravel 5.2有类似的问题,尝试把Auth::user()->id改成Auth::id()
public function scopeOwned($query) {
$query->where('user_id', '=', Auth::id());
}
对我有用!
谢谢大家
这里解决的问题: https://laracasts.com/discuss/channels/laravel/authuser-returns-null-in-laravel-52
我不得不直接将堆栈添加到中间件中(而不是在组中)。
在 /Http/kernel.php:
protected $middleware = [
\Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class,
\App\Http\Middleware\EncryptCookies::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
\Illuminate\Session\Middleware\StartSession::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
\App\Http\Middleware\VerifyCsrfToken::class
];
我遇到了类似的问题。我正在为 API 组定义自定义中间件,而 Auth 始终显示为 null。
我通过在自定义中间件之前加载 EncryptCookies
中间件来修复此问题。
'api' => [
\App\Http\Middleware\EncryptCookies::class,
\App\Http\Middleware\VerifyParametersMiddleware::class, // your custom middleware, load after EncryptCookies
'throttle:60,1',
'bindings',
],
此更改可在 Kernel.php
内完成。
从接受的答案链接到的 same discussion 中,我发现以下解决方案有效。编辑您的 /routes/web.php
文件并用 Route::group('middleware' => 'web'])
包围您现有的路线,如下所示:
Route::group(['middleware' => 'web'], function () {
Auth::routes();
// The rest of your routes
});
据我所知,这不会有任何安全或其他影响,因为它只是在处理包含的路由之前加载 web
中间件。如果有人知道安全性或其他问题/后果,请 post 他们在此答案的评论中。