我想让访客访问此路线:
Route::group(['middleware' => ['guest']], function () {
Route::get('explore', 'FormController@formsList');
});
但我也希望艺术家可以访问此路线而不是labels
:
Route::group(['middleware' => 'auth'],function()
{
Route::group(['middleware' => 'isLabel'],function()
{
});
Route::group(['middleware' => 'isArtist'],function()
{
Route::get('explore', 'FormController@formsList');
});
});
问题是guests
无法访问路线,但artists
可以,而且这不是我想要的。
标签中间件
public function handle($request, Closure $next)
{
if (!Auth::guest() && Auth::user()->type->idtype ===1) {
return $next($request);
}
return redirect('/');
}
艺术家中间件
public function handle($request, Closure $next)
{
if (!Auth::guest() && Auth::user()->type->idtype ===2) {
return $next($request);
}
return redirect('/');
}
答案 0 :(得分:2)
你不能定义"或者将路线分组两次。这就是您当前代码不起作用的原因
我建议您创建一个名为ArtistAndGuestMiddleware
的新中间件,您可以在其中定义来宾和艺术家可以通过。
public function handle($request, Closure $next)
{
if (Auth::guest() || Auth::user()->type->idtype ===2 ) {
return $next($request);
}
return redirect('/');
}