Я новичок в laravel
. Я использую поручение Роли и разрешения, которые работают нормально, но теперь мне нужно добавить каждую роль, как у администратора есть свои controller
и view
. У Superadmin должен быть свой собственный контроллер и просмотр.Как получить доступ к контроллеру на основе ролей и просмотреть с помощью правдоподобия
Может ли кто-нибудь мне помочь? Как получить доступ к разрешению на основе controller
и view
с использованием поручения.
Это, как я попробовал:
Route::group(['middleware' => ['auth']], function() {
if(Entrust::hasRole('superadmin')) {
return View::make('superadmin');
}
else if(Entrust::hasRole('Admin')) {
return View::make('admin');
}
else {
Auth::logout();
return Redirect::to('/login')
->with('flash_notice', 'You don\'t have access!');
}
Route::get('/home', '[email protected]');
Route::resource('users','UserController');
Route::get('roles',['as'=>'roles.index','uses'=>'[email protected]','middleware' => ['permission:role-list|role-create|role-edit|role-delete']]);
Route::get('roles/create',['as'=>'roles.create','uses'=>'[email protected]','middleware' => ['permission:role-create']]);
Route::post('roles/create',['as'=>'roles.store','uses'=>'[email protected]','middleware' => ['permission:role-create']]);
Route::get('roles/{id}',['as'=>'roles.show','uses'=>'[email protected]']);
Route::get('roles/{id}/edit',['as'=>'roles.edit','uses'=>'[email protected]','middleware' => ['permission:role-edit']]);
Route::patch('roles/{id}',['as'=>'roles.update','uses'=>'[email protected]','middleware' => ['permission:role-edit']]);
Route::delete('roles/{id}',['as'=>'roles.destroy','uses'=>'[email protected]','middleware' => ['permission:role-delete']]);
Я проверю ваш ответ, но у меня есть вопрос, на мой взгляд, почему мы не использовали Entrust :: hasRole для проверки имени роли пользователя? Fatemeh –
вообще не должно быть таких логик через if/else в файле маршрутов. этот файл должен иметь только функцию маршрутизации. но почему это не сработало? честно говоря, я не уверен, так как раньше я не видел такой логики в файлах маршрутов. но я думаю, что причина в том, что мы не можем использовать специальные классы, такие как Entrust в файле маршрутов. вы заметили, что в нем нет оператора импорта? и общие правила обычно не применяются к этому специальному файлу. –
Я пробовал ваш код, но не перенаправляюсь к определенному маршруту, ... что мне делать? –