Laravel маршруты с доверием
Я пытаюсь верить в мой код Laravel. На данный момент у меня есть пользователи, разрешения и роли.
создать панель администратора, где вы хотите получить доступ к "разрешения" == "админ - панель"
Я хотел бы, чтобы это было сделано с помощью файла rout.php
Мои файлы: Middleware / EntrustMiddleware.php
class EntrustMiddleware
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
if (!Entrust::can('admin-panel')) {
return Redirect::to('home');
}
return $next($request);
}
}
routes.php
Route::get('admin-panel', ['middleware' => ['auth', 'Entrust'], function () {
}]);
Я перепробовал много методов, но все равно не работает. Может кто-нибудь подсказать, как настроить файл "rout.php", чтобы доступ к "админ - панель /" был только тогда, когда "разрешения" == "админ-панель"
--Редактировать--
Когда я использую этот метод, я получаю сообщение об ошибке:
Route::group(['middleware' => ['Entrust']], function () {
//put your routes here
Route::get('/admin', 'Admin\AdminController@index');
});
ErrorException в строке Pipeline.php 136: call_user_func_array() ожидает, что параметр 1 будет допустимым обратным вызовом, класс 'Zizaco\Entrust\EntrustFacade' не имеет метода 'handle'
--edit2--
['middleware' => ['permission:NAME']]
Теперь я понимаю:)
Должен ли Contoller добавить дополнительную безопасность или нет?
1 ответ
Если вы используете entrust
для всех тех routes
который вы хотите разрешить доступ для конкретных roles
, вам просто нужно поместить это в группу, которая будет делать эту работу, как говорится, вот как это будет выглядеть,
Route::group(['middleware' => ['add roles name here']], function () {
//put your routes here
});