我有一个表格请求制造商请求,其规则如下
public function rules()
{
switch ($this->method()) {
case "POST":
return [
'name' => 'required|string|max:255'
];
case "PUT":
case "PATCH":
return [
'name' => 'required|max:255'
];
}
}
该模型有 2 个字段名称和状态(布尔 0:非活动 1:活动)
并且存储方法是
public function store(ManufacturerRequest $request)
{
//db
Manufacturer::create($request->validated());
}
因为我使用 $request->validated() 我只得到验证数据,在这种情况下验证数据只是名称
如果我发布名称和状态,则状态字段不会返回到 $request->validated()
如果我更改表单请求 ManufacturerRequest 并添加状态规则
public function rules()
{
switch ($this->method()) {
case "POST":
return [
'name' => 'required|string|max:255',
'status' => 'boolean'
];
case "PUT":
case "PATCH":
return [
'name' => 'required|max:255'
];
}
}
和 POST 名称和状态状态现在返回到 $request->validated() 并且我可以正确保存对象。
这意味着在表单请求规则中我必须声明模型的所有字段?
例如 ,如果我有一个带有名称、地址、电话的模型,并且名称是唯一的必填字段,我必须在表单请求中声明 3 条规则
'name' => 'required|string|max:255',
'address' => 'string|max:255',
'telephone' => 'string|max:20',
我理解正确吗?
我是 Laravel 的新手,所以任何帮助表示赞赏