Различные политики для & quot; ресурса & quot; маршруты в Ларавеле

У меня есть система, в которой администратор может управлять врачами, а врач может управлять собой Для этого я использую Авторизация Laravel используя политики. Я зарегистрировал политику для администраторов, чтобы к ней могли обращаться такие врачи, как:

Route::resource('doctors', 'DoctorsController')->middleware('can:access-doctors, App\Doctor');

Но мне нужна отдельная политика только для одного маршрута из группы ресурсов, т.е. doctors.edit так что врач может редактировать свой профиль, например: can:edit-doctor, $doctor что-то.

Есть ли возможность сделать это надлежащим образом, или мне приходится создавать маршруты вручную и назначать политики, а не использовать маршруты ресурсов ???

3

Решение

Если я не ошибаюсь, вам понадобится другая конечная точка для указания определенного промежуточного программного обеспечения для каждого маршрута.

Вы могли бы сделать:

Route::get('doctors/{doctor}/edit', 'DoctorsController@edit')
->middleware('can:edit-doctor', 'App\Doctor'));

Route::put('doctors/{doctor}', 'DoctorsController@update')
->middleware('can:edit-doctor', 'App\Doctor'));

Route::resource('doctors', 'DoctorsController')
->except(['edit', 'update'])
->middleware('can:access-doctors, App\Doctor'));
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]