Laravel - 表单验证 - 需要至少1个字段

时间:2017-01-17 20:39:29

标签: php laravel validation

我有一个像这样的表单数组:

public function rules()
{
        return [ 
            'intro.*' => 'required'
        ];
}

我有以下验证规则:

{{1}}

我真正需要的是至少填写一个介绍。

现有的验证器可以吗?如果是这样的话语法是什么?如果没有,我将如何创建验证器?

4 个答案:

答案 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;

它将检查数组字段是否为空。