Laravel 自定义请求授权,传递请求数据以验证身份验证用户客户 ID 和模型 ID 匹配



我正在尝试修复控制器请求中的 if-else 语句。我想做的是:如果auth::user-companyID == $request-companyID那么真,否则为假;请求的companyID位于刀片文件上的隐藏字段中。

自定义请求

public function authorize()
{
$user = Auth::user();
if ($user->companyID == $request->companyID) {
return true;
} else {
return false;
}
}

控制器

public function edit(EquipmentRequest $request, $id)
{
$validated = $request->validated();
$user = Auth::user();
$equipment = EquipmentModel::where('id', '=', $id)->first();
$equipment->Year = $request->Year;
$equipment->Make = $request->Make;
$equipment->Model = $request->Model;
$equipment->Type = $request->Type;
$equipment->unitNumber = $request->unitNumber;
$equipment->AnnualInspectionDate = $request->AnnualInspectionDate;
$equipment->userID = $request->userID;
$equipment->companyID = $user->companyID;
$e = $equipment->save();
if ($e) {
$request->session()->flash('success', 'The equipment was successfully updated.');
} else {
$request->session()->flash('error',
'An error occurred while saving. Please refresh your browser and try again.');
}
return redirect()->route('equipmentlist');
}

这个表单在我开始弄乱它之前就已经工作了,所以我知道这个表单在刀片文件上工作正常。我不确定您是否可以按照我的方式传递请求数据,或者我是否必须执行构造才能以这种方式传递请求数据。我真的很感激任何建议。

use IlluminateHttpRequest;
public function authorize()
{
$user = auth()->user();
return $user->companyID === request()->companyID;
}

最新更新