使用隐式路由模型绑定时如何获取 id,我需要它进行唯一验证
How to get id When Using Implicit Route Model Binding, i need it in unique validation
// 在验证部分 "alias" 字段应该是唯一的,所以我需要这个 NursingHome
对象 ID(主键)来强制验证不检查这个 ID。
我用$nursinghome->getKey()
方法检查过,但没有成功。
public function update(Request $request, NursingHome $nursinghome)
{
$request->validate([
'name' => 'required|string|max:255',
'address' => 'nullable|string',
'alias' => 'required|string|unique:nursing_home,'.$nursinghome->id,
]);
$data = $request->all();
$data['updated_by'] = Auth::guard('api')->id();
$nursinghome->update($data);
return response()->json($nursinghome, 200);
}
laravel github 中讨论了一个已知问题,即如果您的模型有两个词,如 NursingHome
,则它不会注入控制器:
public function update(Request $request, $id){
$nursinghome = NursingHome::find($id); //now you will get $nursinghome->id
$request->validate([
'name' => 'required|string|max:255',
'address' => 'nullable|string',
'alias' => 'required|string|unique:nursing_home,'.$nursinghome->id,
]);
$data = $request->all();
$data['updated_by'] = Auth::guard('api')->id();
$nursinghome->update($data);
return response()->json($nursinghome, 200);
}
如果您的模型有两个或更多单词,您必须只使用小写字母。
// 在验证部分 "alias" 字段应该是唯一的,所以我需要这个 NursingHome
对象 ID(主键)来强制验证不检查这个 ID。
我用$nursinghome->getKey()
方法检查过,但没有成功。
public function update(Request $request, NursingHome $nursinghome)
{
$request->validate([
'name' => 'required|string|max:255',
'address' => 'nullable|string',
'alias' => 'required|string|unique:nursing_home,'.$nursinghome->id,
]);
$data = $request->all();
$data['updated_by'] = Auth::guard('api')->id();
$nursinghome->update($data);
return response()->json($nursinghome, 200);
}
laravel github 中讨论了一个已知问题,即如果您的模型有两个词,如 NursingHome
,则它不会注入控制器:
public function update(Request $request, $id){
$nursinghome = NursingHome::find($id); //now you will get $nursinghome->id
$request->validate([
'name' => 'required|string|max:255',
'address' => 'nullable|string',
'alias' => 'required|string|unique:nursing_home,'.$nursinghome->id,
]);
$data = $request->all();
$data['updated_by'] = Auth::guard('api')->id();
$nursinghome->update($data);
return response()->json($nursinghome, 200);
}
如果您的模型有两个或更多单词,您必须只使用小写字母。