저는 Laravel의 미들웨어에 대해 몇 가지 문제를 겪고 있습니다.여러 역할을 가진 Laravel 미들웨어
- 학생 (기본값) : 인덱스 '액세스 할 수있는 사이트
등록 된 사용자는 네 가지 역할 중 하나가됩니다 : 내가 당신에게 내가 달성하기 위해 노력하고있어 기본적인 생각을 말씀 드리죠 '와'쇼 : ','갱신 '
- 편집기를 개요을'보기
- 승인자 이전에 액세스, 플러스 할 수 있습니다 ': CA를 N 이전에 액세스, 플러스 '을 만들 ', '편집'와 '저장'
- 관리자가 : 모든
에 액세스 할 수 있습니다 참고 : '개요'인덱스 뷰의 일종이다, 승인자 역할 이상에만 해당
여러분이 제안하는 것이 최선의 방법이라고 생각하십니까? 이것은 내가 지금까지 한 일이지만, 작동하지 않습니다
Kernel.php
protected $middlewareGroups = [
...
'approver+' => [
\App\Http\Middleware\Approver::class,
\App\Http\Middleware\Editor::class,
\App\Http\Middleware\Admin::class,
],
];
protected $routeMiddleware = [
...
'student' => \App\Http\Middleware\Student::class,
'approver' => \App\Http\Middleware\Approver::class,
'editor' => \App\Http\Middleware\Editor::class,
'admin' => \App\Http\Middleware\Admin::class,
];
의 HTTP를
public function handle($request, Closure $next)
{
if (Auth::check())
{
if(Auth::user()->isAdmin())
{
return $next($request);
}
}
return redirect('login');
}
미들웨어 \ Admin.php \
'User'Eloquent 모델 :
public function isAdmin()
{
if($this->role_id === 4)
{
return true;
}
else
{
return false;
}
}
나는 Approver 및 Editor 미들웨어 파일에서 똑같이 수행했으며 사용자 모델의 isApprover 및 isEditor 함수에서는 if 문에서 검사 된 값을 2와 3으로 각각 편집했습니다.
Route::get('scholen', '[email protected]');
Route::get('admin/scholen/overzicht', '[email protected]')->middleware('approver+');
Route::get('admin/scholen/maken', '[email protected]')->middleware('approver+');
Route::post('scholen', '[email protected]')->middleware('approver+');
Route::get('scholen/{id}', '[email protected]');
Route::get('admin/scholen/{id}/bewerken', '[email protected]')->middleware('admin');
Route::patch('admin/scholen/{id}', '[email protected]')->middleware('admin');
Route::delete('admin/scholen/{id}', '[email protected]')->middleware('admin');
아직 정확히 점에 모두가 아니라 내가 승인자을 가진 사용자로 로그인 할 때부터 붙어있어 :
마지막으로, 여기 내 경로에 \ 웹 파일을 한 일입니다 권리에 관한 정보를 제공하고 학교 개요에 액세스하려고하면 다시 홈 페이지로 리디렉션됩니다.
일반적으로 나는 너무 혼란스럽고 전혀 옳지 않은 것처럼 느껴진다. 좀 더 효율적으로 할 수있는 조언을 누군가가 줄 수 있을까?
미리 감사드립니다.
에서 마지막으로 미들웨어 \ Role.php
\
PHP로 HTTP
내가 많이 나는 그것을 만들고 있었다 잘 작동하는 것 같다 그 :) 너무 복잡 생각 대단히 감사합니다! – Jesse