gpt4 book ai didi

php - 如果未选择任何选项,Laravel 将忽略选择输入验证

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:34:26 24 4
gpt4 key购买 nike

我有一个包含一些字段的表单,我想使用 Laravel 的 validate() 方法对其进行验证。

public function postSomething(Request $req) {

...

$this->validate($req, [
'text_input' => 'required',
'select_input' => 'required'
]);

...

}

问题是,如果提交表单时没有从选择输入中选择一个选项,它会在请求中被忽略,并且 Laravel 不会验证它,尽管它已被添加到具有 required< 的规则集中 验证规则。正在正确验证空文本输入。

+request: ParameterBag {#42 ▼
#parameters: array:1 [▼
"text_input" => ""
"_token" => "TCDqEi2dHVQfmc9HdNf8ju1ofdUQS6MtDBpUMkl7"
]
}

如您所见,如果 select_input 为空,则请求参数中会缺少它。

这是我选择输入的 HTML 代码:

<select class="form-control" name="select_input">
<option disabled selected>Please select...</option>
<option value="val1">Value 1</option>
<option value="val2">Value 2</option>
</select>

有没有一种方法可以对规则集中的所有字段进行验证,即使其中一些字段不在请求中?

来自 Laravel 5.1 验证文档:

required

The field under validation must be present in the input data and not empty. A field is considered "empty" is one of the following conditions are true: The value is null. The value is an empty string. The value is an empty array or empty Countable object. The value is an uploaded file with no path.

附言我使用的是 Laravel 5.1,所以 present 方法不可用。

最佳答案

你的 html 应该是这样的

<select class="form-control" name="select_input">
<option value="" selected >Please select...</option>
<option value="val1">Value 1</option>
<option value="val2">Value 2</option>
</select>

$this->validate($req, [
'text_input' => 'required',
'select_input' => 'required',
]);

如果您的选择框值是整数,则您可以将 requiredinteger 一起使用,例如

$this->validate($req, [
'text_input' => 'required',
'select_input' => 'required|integer',
]);

或者,如果您对该选择框的选项有限,那么您可以使用

'select_input' => "required|in:val1,val2,val3",

关于php - 如果未选择任何选项,Laravel 将忽略选择输入验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46405564/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com