Laravel 5.7
PHP 7.2.10
例如我的路线是
Route::middleware('auth', 'emailVerified', 'phoneVerified', 'flatTenant|flatResident|flatMember')->get('apartments/{apartment}/flats/{flat}/guests/{guest}', 'Api\GuestController@show')->name('Api.guests.show');
我希望它像flatTenant,flatResident和flatMember一样工作,这应该允许请求,实现此目的的最佳方法是什么?
答案 0 :(得分:1)
您无需在路线内进行制作或操作。相反,您可以进行自己的身份验证,该身份验证将检查当前用户是否为flatTenant,flatResident和flatMember中的任何一个。
例如,您可以注册一个名为'flatChecker'的中间件。
然后在中间件中,您的代码可以是这样的
public function handle($request, Closure $next)
{
if (Auth::user()->isFlatTenant || Auth::user()->isFlatResident || Auth::user()->isFlatMember) //put your own condition to check here
{
return $next($request);
}
return redirect('/home'); //if they are not, then redirect them to somewhere else
}
有关中间件的更多信息,请检查此documentation。