[英]Laravel validation get value from a column and compare it to another table column
我有以下表格:
- companies
- users
- departments
- services
我們具有以下結構:
A user belongs to a company
A company has many departments
One department has multiple services.
問題是我想僅使用服務ID來驗證具有特定company_id
標志的服務部門。
數據庫:
公司
| id | name |
| 1 | Company 1 |
| 2 | Company 2 |
用戶
| id | name | company_id |
| 1 | User 1 | 1 |
部門
| id | name | company_id |
| 1 | Department 1 | 1 |
| 2 | Department 2 | 2 |
服務
| id | name | departments_id |
| 1 | Service 1 | 1 |
| 2 | Service 2 | 2 |
端點看起來像這樣:
迷迷糊糊的用戶屬於Company 1
$app->delete('/{id}', ['uses' => 'ServicesController@deleteService']);
刪除服務方式
public function deleteService($id, Request $request)
{
$request['id'] = $id;
$this->validate($request, [
'id' => 'required|exists:services,id',
]);
$result = Service::deleteService($id, $this->user->company_id);
return response()->json($result);
}
Company 1
的用戶不能刪除Service 2
。 我該如何實現?
謝謝。
最可監督的方式是編寫自定義驗證器
您可以使用Laravel中的policies
進行操作,請檢查文檔
會像這樣
$request['id'] = $id;
$this->validate($request, [
'id' => 'required|exists:services,id',
]);
$this->authorize('delete', $id); // will check if user can delete the company as the needed logic.
$result = Service::deleteService($id, $this->user->company_id);
return response()->json($result);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.