【发布时间】:2020-01-22 17:41:29
【问题描述】:
我试图在用户登录时显示一个按钮。如果用户没有登录,该按钮将不会出现在页面上。所以我需要做的第一件事是确定用户是否登录。问题是,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';
}
}
Web.php
Route::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\.-]*');
【问题讨论】:
-
你试过
Auth::guard('api')->check()吗?只需将api替换为您要检查的守卫(我使用了那个,因为您正在从 axios 进行 ajax 调用) -
在返回前尝试“dd()”,让我们知道它的含义