0
我有問題,在我的Route::middleware
中使用多個參數對我來說不起作用。我試圖分配一個特定的路線,只能訪問超級用戶和admin角色。Laravel路由中的多個參數middelware不起作用
當我只是用:
role:superuser
它工作正常,但是當我添加第二個參數,如:
role:superuser,admin
失敗的時候我給你自己的管理員作用,但仍然有效爲超級用戶作用。
我很困惑,所以任何幫助將不勝感激!
這裏是我的RoleMiddleware:
namespace App\Http\Middleware;
use Closure;
class RoleMiddleware
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @param string $roles
* @return mixed
*/
public function handle($request, Closure $next, ...$roles)
{
$user = $request->user();
if ($user && $user->isSuperuser($roles)) {
return $next($request);
}
return redirect('/home')->withError('U heeft niet de juiste rechten!');
}
}
這裏是我的用戶模型我isSuperuser方法:
public function isSuperuser(...$roles)
{
if ($roles) {
return $this->roles == $roles;
}
return $this->roles;
}
最後但並非最不重要的我的路線/網頁代碼中間件:
Route::get('/users', '[email protected]')->middleware(['role:superuser,admin']);
btw:該方法被稱爲'isSuperuser'
但這只是一個名稱。它也必須在某個時候接受角色。
若要應用多箇中間件的路線,我認爲你必須添加項目到一個數組。 I.e ....->中間件(['role:superuser','role:admin']); – ochhii