允许空字符串的 Laravel 字符串验证

2022-08-30 19:29:49

在Laravel 5.7中,我使用的是表单请求验证:

public function rules() 
{
    return [
        'age' => 'integer',
        'title' => 'string|max:50'
    ];
}

如果我使用此有效负载向我的 API 提交请求:

{
  "age": 24,
  "title": ""
}

Laravel 返回错误:

{
    "message": "The given data was invalid.",
    "errors": {
        "title": [
            "The title must be a string."
        ]
    }
}

我希望它通过验证,因为标题是一个字符串,尽管是一个空的字符串。应如何制定验证以允许空字符串?


答案 1

您需要允许空字符串nullable

public function rules() 
{
    return [
        'age' => 'integer',
        'title' => 'nullable|string|max:50'
    ];
}

答案 2

尝试查看中间件是否处于活动状态,然后它会解释此行为,请参阅文档ConvertEmptyStringsToNull


推荐