자신의 Middleware을 만듭니다. 다음은 그 예입니다. 필자의 예에서는 몇 가지 사용자 그룹이 별도의 모델에 있습니다. 필요에 따라 코드를 변경해야합니다.
터미널/콘솔을 통해 미들웨어 작성 : 이제 당신을
namespace App\Http\Middleware;
use Closure;
use App\User;
use App\Usergroup;
class UserGroupMiddleware
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next, $group)
{
if($request->user() !== NULL){
$userGroupId = $request->user()->group;
$userGroup = Usergroup::find($userGroupId);
if($userGroup->slug === $group){
return $next($request);
}
}
// Redirect the user to the loginpage
return redirect('/login');
}
}
:
php artisan make:middleware UserGroupMiddleware
가 생성 된 미들웨어 클래스는 당신이 당신의 미들웨어에 다음 코드를 필요 app/Http/Middleware/UserGroupMiddleware.php
에서 찾을 수를 이 미들웨어를 app/Http/Kernel.php
에 등록해야합니다 :
protected $routeMiddleware = [
// other middlewares
// Custom Middleware
'group' => \App\Http\Middleware\UserGroupMiddleware::class
];
마지막으로 당신은 당신의 경로에 미들웨어를 첨부해야합니다
Route::group(['middleware' => 'group:admin'], function(){
// Routes for admins, e.g.
Route::get('/dashboard', '[email protected]');
});
// Or for a single route:
Route::get('/dashboard', ['middleware' => 'group:admin'], function(){
return view('adminbereich.dashboard');
});
는 기억, 당신은 여러 미들웨어를 전달할 수 :
Route::get('/some/route', ['middleware' => ['group:admin', 'auth']], '[email protected]');
이 미들웨어를 사용합니다. – tkausl