[英]Different Policies for “Resource” routes in Laravel
我有一個系統,管理員可以管理醫生,醫生有管理自己的能力。 為此,我正在使用Laravel授權使用策略。 我為管理員注冊了一個政策,可以訪問以下醫生:
Route::resource('doctors', 'DoctorsController')->middleware('can:access-doctors, App\Doctor');
但我需要的是只有一個路線不同的策略進行資源組即doctors.edit
所以醫生可以編輯自己的個人資料,如: can:edit-doctor, $doctor
東西。
是否有可能以適當的方式執行此操作,或者我必須制作手動路由並分配策略而不是使用資源路由?
如果我沒錯,您將需要一個不同的端點來為每條路由指定特定的中間件。
你可以這樣做:
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'));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.