我试图在用户登录时显示一个按钮。如果用户没有登录,则该按钮不会出现在页面上。所以我需要做的第一件事是确定用户是否登录。问题是,Auth::check() 一直返回 null。我已经研究过我们应该将路由放在 Auth 中间件中,但是这样做,用户必须登录才能看到页面,我不希望这样。我希望用户能够在没有登录的情况下看到该页面,并且当他们登录时,一个按钮将出现在同一页面上。零件 <button v-if="showBtnDelete==true" class="btn btn-danger">Delete</button> <script> getUserType(){ axios.get('api/gallery/getUserType').then(res=>{ this.showBtnDelete = res.data;}); }, </script>控制器public function getUserType(){ if(Auth::check()){ return 'true'; }else{ return 'false'; }}网页.phpRoute::group(['middleware' => ['auth']],function(){Route::get('/add-image', function () {return view('layouts.master');});});Auth::routes();Route::get('/logout','Auth\LoginController@logout');Route::get('/', function () {return view('home');});Route::get('{path?}', function () {return view('layouts.master');})->where('path', '[\/\w\.-]*');
3 回答

慕姐8265434
TA贡献1813条经验 获得超2个赞
如果有人有同样的问题。问题是您的路由不受中间件组 web 的保护。这意味着它将无法检索当前用户的会话,因此 Auth 外观将始终返回 null。将 middleware('web') 添加到访问方法(代码)的路由中,如果已登录,您将能够检索当前用户。

千巷猫影
TA贡献1829条经验 获得超7个赞
您将返回'true'并'false'作为字符串返回true,当非严格比较和false 严格比较时都返回
echo 'false' == true; // true
echo 'false' === true; // false (not same data type)
反之亦然...现在Auth::check() 自然返回一个布尔值,因此 if,else 语句是多余的...
您可以在需要时使用辅助方法来使用每个守卫
public function getUserType()
{
return auth()->check();
}
- 3 回答
- 0 关注
- 398 浏览
添加回答
举报
0/150
提交
取消