我有一个像这样的表单数组:
public function rules()
{
return [
'intro.*' => 'required'
];
}
我有以下验证规则:
{{1}}
我真正需要的是至少填写一个介绍。
现有的验证器可以吗?如果是这样的话语法是什么?如果没有,我将如何创建验证器?
答案 0 :(得分:3)
您正在寻找的是required_without_all
:
'intro.en' => 'required_without_all: intro.fr, intro.de',
'intro.fr' => 'required_without_all: intro.en, intro.de',
'intro.de' => 'required_without_all: intro.en, intro.fr',
答案 1 :(得分:0)
你也可以尝试这个
'intro' => 'required|array|min:1'
答案 2 :(得分:0)
我想你应该试试这个:
public function rules()
{
return [
'intro.*.en' => 'required',
'intro.*.fr' => 'required',
'intro.*.de' => 'required',
];
}
希望这对你有用!
答案 3 :(得分:0)
您可以在 AppServiceProvide 中为其定义自定义规则,如下面的代码
$this->app['validator']->extend('emptyArray', function ($attribute, $values, $parameters)
{
foreach($values as $data){
if(count($data)) return true;
}
return false;
});
Validator::replacer('emptyArray', function ($message, $attribute, $rule, $parameters) {
return 'You need to fill up at least one field for '.$attribute;
它将检查数组字段是否为空。