Как передать переменные в middleware?

Когда переходишь на страницу проекта идет проверка может ли пользователь заходить на нее через middleware , он принимает переменную project то есть id.
Route::get('/{project}', 'ProjectController@index')->middleware('isMember:1')->name('project.index');
Так работает но вместо
'isMember:1'
мне нужно подставить id проекта который указан в url строке.
Как реализовать?
  • Вопрос задан
  • 217 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Barmunk
логика должна быть наоборот.
в маршруте указываете какие конкретно права должны быть у юзера чтобы пройти
Route::get('/{project}', 'ProjectController@index')->middleware('permissions:project|admin')->name('project.index');


а в middleware принимаете эти права и сверяете с теми что есть у конкретного пользователя, который сейчас делает запрос.

посмотрите как это делают другие пакеты:
https://github.com/Zizaco/entrust/tree/master/src/...
https://github.com/spatie/laravel-permission/tree/...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы