0
我目前正在使用用戶創建模型的項目上工作,只有他/她被允許查看,編輯或刪除。允許CRUD僅用於Auth ::擁有資源的用戶
創建部分通過Eloquent Relationships完成,但對於其他操作,我想將它與Route Model綁定結合起來,而不是手動在控制器中。我試着用中間件解決它,但我無法訪問資源。
有人可以指點我正確的方向,任何最佳實踐,歡迎!
我目前正在使用用戶創建模型的項目上工作,只有他/她被允許查看,編輯或刪除。允許CRUD僅用於Auth ::擁有資源的用戶
創建部分通過Eloquent Relationships完成,但對於其他操作,我想將它與Route Model綁定結合起來,而不是手動在控制器中。我試着用中間件解決它,但我無法訪問資源。
有人可以指點我正確的方向,任何最佳實踐,歡迎!
我個人使用路由模型綁定,但只允許模型綁定,如果用戶擁有該記錄。
這意味着無論如何 - 人們無法訪問別人的記錄。因此,例如,在我的路線,我可以做
$router->get('property/{property}, ['uses' => [email protected]]);
我RouteServiceProvider
然後:
$router->bind('property', function($value) {
$property = \App\Property::findOrFail($value);
if ((int)$property->user_id !== (int)auth()->id()) {
abort (404);
}
return $property;
});
在上面的例子
所以 - 我們有一個property
路線,它會試圖找到的財產記錄給出。然後它會檢查用戶是否擁有該記錄,否則會拋出一個404(但您可以重定向或執行某些操作 - 取決於您)。
我正在尋找這樣的答案,中間件和/或請求會讓它太複雜。謝謝! –
不會使用'middleware'或'requests'使它更容易? – surfer190