我正在使用验证器验证 Laravel 5.4 中的请求,请参阅文档: https ://laravel.com/docs/5.4/validation#validating-arrays
基本上,它是控制器中的这段代码:
public function createSomeResource(Request $request)
{
$this->validate($request, [
'items' => 'required',
];
...
}
我想要求字段“items”存在并且这段代码做到了,但问题是当“items”字段为空数组时验证失败,即
{
"fields": []
}
,这是一种不受欢迎的行为。我知道这是“必需”参数的记录行为,但我没有看到任何“干净”的解决方法。我也试过:
public function createSomeResource(Request $request)
{
$this->validate($request, [
'items' => 'required_unless:items,[]',
];
...
}
但它也失败了,可能是因为文档说它在“required_unless”子句之后使用不同的字段,但我对此并不完全确定。
你能建议我一种方法来要求字段“项目”的存在而不禁止空数组吗?
编辑:我想到的另一种“显而易见”的方法是使用“present|array”规则,它几乎可以满足我的要求,但不幸的是,空字符串也通过了该验证规则,这可能是Laravel,也许不是——我在 Laravel github 存储库上为它开了一个问题: https ://github.com/laravel/framework/issues/18948
原文由 Rafael Korbas 发布,翻译遵循 CC BY-SA 4.0 许可协议
尝试这个: