我只是安装了新的laravel应用程序,然后继续通过php artisan make:auth
进行身份验证
问题是即使我已经登录,dump(Auth::id())
仍在路由文件(web.php)中返回null
。
如果
Route::get('test', function() {
dump(Auth::id()); }
);
它返回当前登录的用户ID。
因为我想基于路由文件(web.php)中已登录的用户ID进行查询。
例如(web.php)
$test = DB::table('tests')->where('user_id', Auth::id())->get();
dump($test) // returns empty because Auth::id() returns null
答案 0 :(得分:0)
阅读laravel文档:https://laravel.com/docs/5.8/authentication
如果您想在不使用身份验证中间件的情况下获取用户ID,请尝试
对于默认后卫,
if ( auth()->check() )
return auth()->id();
对于特定后卫,
if ( auth()->guard('guard-name')->check() )
return auth()->guard('guard-name')->id();
答案 1 :(得分:-1)
您必须使用Auth::user()->id
,因为Auth中没有预定义的id()
。跨多个功能工作时,我没有遇到过您提到的任何功能。