如何在从FormRequest扩展的类中验证具有相同名称的多个输入

时间:2017-05-13 13:02:00

标签: laravel laravel-5

我是Laravel的新手。

我想知道如何验证具有相同名称的多个输入。

我有一个POST请求的验证规则但是虽然我需要所有值,但验证失败了。

我注意到键名与用户输入的键名不同,所以我认为这会导致问题。

enter image description here

在页面上我有一个这样的表格,所以,我有很多输入字段,名称如“visit [0] ['did_visit']”,“访问[1] ['did_visit']”,“访问[2] [ 'did_visit'] ...

但是,我无法弄清楚如何在从FormRequest类扩展的类中验证这些。

请帮助我!!

VisitRecordRequest扩展了FormRequest

started = time.time()
doProcess()
print(time.time()-started)

var_dump log

class VisitRecordRequest extends FormRequest
{


    public function authorize()
    {
        return true;
    }



    public function rules()
    {

        switch($this->method())
        {

            case 'GET':

                return [];

            case 'POST':
            {

                //var_dump my input!!!
                echo "<pre>";
                var_dump($this->input());
                echo "</pre>";

                exit;

                return [

                    'date' => 'required',
                    'hour' => 'required',
                    'minute' => 'required',
                    'weather' => 'required',
                    'room_id' => 'required',
                    'did_visit' => 'required',
                    'bounce_zone' => 'required',
                    'bounce_reason' => 'required',
                    'next_action' => 'required',

                ];
            }

            case 'PUT':
            {
                return [];

            }

            case 'PATCH':
            {
                return [];
            }

            case 'DELETE':
            {
                return [];
            }

            default:break;
        }

        return [];


    }


    public function response(array $errors)
    {

    }


}

2 个答案:

答案 0 :(得分:1)

'visit.*.did_visit' => 'required'

点击此处查看更多信息https://laravel.com/docs/5.4/validation#validating-arrays

答案 1 :(得分:0)

它应该是visit => 'array' ..然后有一个单独的验证器供访问..

然后

foreach($request->visit as $visit)
{
    //validate visit ..
}