2016-08-05 65 views
1

私は配列としてチェックボックスと配列としてテキストボックスを持つテーブルを持っています。私が達成したいのは、ユーザーが入力ボックスが空でないことを確認するチェックボックスをチェックしたときです。入力としてlaravelでrequired_withを使用した検証は配列として行われましたか?

 
public function roombooking(Request $request) 
    { 


     $messsages = array(
     'check.required'=>'No room was selected.Please select room to proceed for booking !', 
     'txtnos.required|numeric'=>'Please enter no of persons', 
    ); 
     $rules = array(
     'check'=>'required', 
     'txtnos'=>'required_with:data', //txtnos is a array input filed and data is a array checkbox 
     ); 
     $validator = Validator::make($request->all(), $rules,$messsages 
      ); 
     if ($validator->fails()) { 

      return Redirect::back() 
       ->withErrors($validator) 
       ->withinput(); 

     } 
} 

HTMLコード

 


         
 
<table class="table table-hover" data-toggle="table" id="table" 
 
data-click-to-select="true"> 
 
    <thead> 
 
     <tr> 
 
      <th style="width:10%;" data-field="ActivityId">Select</th> 
 
      <th style="width:30%;" data-field="ActivityName">Activity Name</th> 
 
      <th style="width:30%;" data-field="Rate">Rate/Person</th> 
 
      <th style="width:30%;">Nos. of person</th> 
 
     </tr> 
 
    </thead> 
 
    <tbody>     
 
      @foreach($loadactivity as $key=>$activity) 
 
      <tr> 
 
       <td> 
 
        <input type="checkbox" name="data[]" value="0;{!! $activity->ActivityId !!};{!! $activity->Rate !!};0;0;{!! $activity->ActivityName !!}" /> 
 
       </td> 
 
       <td>{!! $activity->ActivityName !!}</td> 
 
       <td>{!! $activity->Rate !!}</td> 
 
       <td >{!! Form::text('txtnos[]','',['class' => 'form-control small-textbox ','txtnoid'=>$activity->ActivityId]) !!}</td> 
 
      </tr> 
 
      @endforeach 
 
    
 
    </tbody> 
 
</table>

は私が

+0

フォームにはHTMLを入力してください – SebHallin

答えて

1

は、フォームに変更し助けてください:

... 
<td><input type="checkbox" name="row[{{$key}}][data]" value="0;{!! $activity->ActivityId !!};{!! $activity->Rate !!};0;0;{!! $activity->ActivityName !!}" /> 
</td> 
<td>{!! $activity->ActivityName !!}</td> 
<td>{!! $activity->Rate !!}</td> 
<td>{!! Form::text('row[{{$key}}][txtnos]','',['class' => 'form-control small-textbox ','txtnoid'=>$activity->ActivityId]) !!}</td> 
... 

だから変わったの唯一の事は、データとtxtnosの名前です。それはあなたに次を与えるでしょう:

$exampleResult = [ 
    'row' => [ 
     // old $key as new key 
     0 => [ 
      'txtnos' => 'entered value', 
      'data' => '1', // But only if checked 
     ], 
     1 => [ 
      'txtnos' => 'entered value', 
      'data' => '1', // But only if checked 
     ], 
    ] 
]; 

検証は、各行が同じ行ISSETにdata場合に必要とされる上の例で

$rules = [ 
    'row.*.txtnos' => 'required_with:row.*.data' 
]; 

txtnosルール。

検証メッセージ

$messages = [ 
    'row.*.txtnos.required_with' => 'Enter a value or uncheck the checkbox..' 
]; 

重要:.*.ため
検証はLaravel 5.2で追加されました、私はそれがために働くのかはわからないので、あなたはあなたの正確なバージョンを指定しませんでした君は。とにかく、これを行う別の方法があります。

バージョン< 5.2では、入力行をループし、私の例の*を現在のキーに置き換えてください。

+0

私はHTMLコードで自分の質問を更新しています。確認してルールを設定する方法を教えてください –

+0

それは働く!!!!どうもありがとうございます –

+0

よろしくお願いします。してください "[回答を受け入れる](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work)"とお伝えください。ありがとうございます。 – SebHallin

関連する問題