如何在laravel中对中间件进行OR操作

如何在laravel中对中间件进行OR操作,laravel,laravel-routing,laravel-middleware,Laravel,Laravel Routing,Laravel Middleware,例如,我的路线是 Laravel 5.7 PHP 7.2.10 我希望它能像Flattant、flatResident和flatMember一样工作。这应该允许请求,实现这一点的最佳方法是什么 您不需要在路线内进行任何操作。相反,您可以进行自己的身份验证,以检查当前用户是否为Flattant、flatResident和flatMember中的任何一个 例如,您可以注册一个名为“flatChecker”的中间件 在这个中间件中,你的代码可以是这样的 Route::middleware('auth

例如,我的路线是

Laravel 5.7
PHP 7.2.10

我希望它能像Flattant、flatResident和flatMember一样工作。这应该允许请求,实现这一点的最佳方法是什么

您不需要在路线内进行任何操作。相反,您可以进行自己的身份验证,以检查当前用户是否为Flattant、flatResident和flatMember中的任何一个

例如,您可以注册一个名为“flatChecker”的中间件

在这个中间件中,你的代码可以是这样的

Route::middleware('auth', 'emailVerified', 'phoneVerified', 'flatTenant|flatResident|flatMember')->get('apartments/{apartment}/flats/{flat}/guests/{guest}', 'Api\GuestController@show')->name('Api.guests.show');

有关中间件的更多信息,请检查此项

为什么不创建一个中间件单元并在那里检查租户、住户或成员?
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
    }