Php 若现场需要,则为Laravel,don';是否为每个值返回错误?

Php 若现场需要,则为Laravel,don';是否为每个值返回错误?,php,validation,laravel,Php,Validation,Laravel,我有一张很大的登记表 'username_c' => 'required|unique:contacts_cstm', 'password' => 'required|min:6', 'email' => 'required|email', 'password_repeat' => 'required|same:password', 'first_name' => 'required', 'l

我有一张很大的登记表

'username_c'        => 'required|unique:contacts_cstm',
'password'          => 'required|min:6',
'email'             => 'required|email',
'password_repeat'   => 'required|same:password',
'first_name'        => 'required',
'last_name'         => 'required',
'rsa'               => 'required',
等等(另外15个字段)

问题是,如果提交表单时未输入任何内容,则会返回大约20个不同的错误(应该是这样的)

除此之外,如果没有输入任何必填字段,则最好回吐一个错误,说“所有字段都是必填的”或类似的内容


我读过拉威尔的文件。在这上面,我什么也没发现。有什么简单的方法可以做到这一点吗?

假设
$rules
数组中的所有字段都是必需的,您应该能够做一些简单的事情,比如
数组过滤器($required\u fields\u input)
,将长度与
$required\u规则的长度进行比较,然后用一条错误消息/警报重定向回

请参见下面的代码示例。我尽量让它简单/评论得足够多

根本没有测试。。。但是理论上!…;)

class-YourController{
// ...
公共函数postFormData()
{
$rules=[
// ...
'名字'=>'必需',
'姓氏'=>'必填',
“rsa”=>“必需”
// ...
];
//假设$rules中的所有字段都是“必需的”
$required\u fields=数组\u键($rules);
$required\u fields\u input=input::only($required\u fields);
//清除所有空/空字段
$input\U not\U empty=数组过滤器($required\U fields\U input);
if(计数($input_not_empty)withMessage($fill_them_all_in_message);
}
/**
*所有必填字段都存在
*像往常一样继续。。
*…验证/响应/等等。。。
*/
}
//...
}
我想这差不多涵盖了你主要关心的

a、 )避免显示“需要XYZ字段”的15条消息

b、 )仍然允许其余的验证/处理照常进行

希望有帮助

尽管这基本上只是替换默认的错误消息,但请尝试这样做。
class YourController {

    // ...

    public function postFormData()
    {
        $rules = [
            // ...
            'first_name'        => 'required',
            'last_name'         => 'required',
            'rsa'               => 'required'
            // ...
        ];

        // Assuming all fields in $rules are "required"
        $required_fields       = array_keys($rules);
        $required_fields_input = Input::only($required_fields);

        // Clean out all empty/null fields
        $input_not_empty       = array_filter($required_fields_input);
        if (count($input_not_empty) < count($required_fields))
        {
            $fill_them_all_in_message = "Please fill in all required fields.";
            return Redirect::back()->withMessage($fill_them_all_in_message);
        }

        /**
         * All required fields present
         * Continue as usual ..
         * .. Validate/Respond/etc...
         */
    }

    //...
}