2017-05-13 15 views
0

私はLaravelを初めて使用しています。FormRequestから拡張されたクラスで同じ名前の複数の入力を検証する方法

複数の入力を同じ名前で検証する方法を知りたいと思います。

私はPOSTリクエストの検証規則を持っていますが、これは検証に失敗しますが、すべての値が必要です。

私は、キー名がユーザー入力のキー名と同じではないことに気づいたので、問題の原因と考えています。ページで

enter image description here

私はこのような形を持っているので、私は「、 "[0] [ 'did_visit']を訪問" のような名前を持つ多くの入力フィールドを持って訪問[1] [ 'did_visit 「] 『』訪問[2] [ 『did_visit』] ...

をしかし、私はFormRequestクラス。

から延長私のクラスでこれらを検証する方法を見つけ出すことができない私を助けてください!

VisitRecordRequestはFormRequestを拡張します

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) 
    { 

    } 


} 

のvar_dumpログ

array(2) { 
    ["visit"]=> 
    array(3) { 
    ["common"]=> 
    array(4) { 
     ["date"]=> 
     string(10) "2017-05-13" 
     ["hour"]=> 
     string(2) "09" 
     ["minute"]=> 
     string(2) "00" 
     ["weather"]=> 
     string(5) "sunny" 
    } 
    [0]=> 
    array(6) { 
     ["room_id"]=> 
     string(2) "33" 
     ["did_visit"]=> 
     string(2) "on" 
     ["bounce_zone"]=> 
     string(1) "1" 
     ["bounce_reason"]=> 
     string(1) "1" 
     ["next_action"]=> 
     string(1) "2" 
     ["memo"]=> 
     string(11) "hello world" 
    } 
    [1]=> 
    array(6) { 
     ["room_id"]=> 
     string(2) "34" 
     ["did_visit"]=> 
     string(3) "off" 
     ["bounce_zone"]=> 
     string(1) "0" 
     ["bounce_reason"]=> 
     string(1) "0" 
     ["next_action"]=> 
     string(1) "1" 
     ["memo"]=> 
     string(14) "hello world!!!" 
    }, 
    [2]=> 
    array(6) { 
     ["room_id"]=> 
     string(2) "35" 
     ["did_visit"]=> 
     string(3) "off" 
     ["bounce_zone"]=> 
     string(1) "3" 
     ["bounce_reason"]=> 
     string(1) "2" 
     ["next_action"]=> 
     string(1) "1" 
     ["memo"]=> 
     string(14) "hello world!!!" 
    } 
    } 
    ["_token"]=> 
    string(40) "2yvZEmM3SUxTcUAZusZs87B1fKD4edVFy0AY4kjC" 
} 

答えて

1

それは訪問のための個別のバリデータを持って、その後... visit => 'array'する必要があります。..

、より多くのためにここに

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

ありがとうございます!バリデーションタイプに「配列」を使用できるかどうかはわかりませんでした。私はそれを見るでしょう! – hytm

関連する問題