0

我有一个表格请求制造商请求,其规则如下

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 的新手,所以任何帮助表示赞赏

4

0 回答 0