簡體   English   中英

Laravel中“資源”路線的不同政策

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM