Я использую Zizaco/entrust пакет laravel в качестве менеджера ACL для моего проекта.назначить отдельное промежуточное ПО для каждого метода ресурса в laravel
Я знаю, что ограничивает доступ к маршрутной группе через промежуточное программное и назначить роль (или разрешение) на него, я должен сделать это так:
Route::group(['prefix' => 'admin', 'middleware' => ['role:admin']], function() {
....
});
Но я хочу назначить отдельное разрешение на разные маршрутов (методов) контроллера ресурсов.
Я знаю, что, как можно так, что для всего ресурса, но я не могу реализовать для каждого метода контроллера:
Route::group(['prefix' => 'admin', 'middleware' => ['role:admin']], function() {
Route::resource('/post', ['middleware' => ['permission:manage-posts'], 'uses' => 'PostController']);
});
Я хочу Ассинг это разрешение соответствующего метода:
'post-create' => public function create()
'post-edit' => public function edit()
и скоро.
У меня есть много моделей, и у каждого есть индивидуальные ресурсы, которые те имеют различные методы. добавить промежуточное ПО для каждого метода? нет другого простого и общего решения? –
@ A.B.Developer У Middlewares, как и на любые другие классы, должна быть одна ответственность, вы можете написать сложный условный код, чтобы сделать промежуточное программное обеспечение более чем одним методом, но тогда ему будет сложнее поддерживать и расширять. –
, похоже, не является хорошим ответом. этот метод должен будет использовать одно промежуточное ПО для каждого метода. Будет слишком много для разработчика –