2013-10-07 7 views
11

Laravel 4フォームで設定した一連のチェックボックスの値を取得したいと思います。ここでチェックボックスを設定するビューのコードです:Laravel 4コントローラ(チェックされている場合)の一連のチェックボックスの値を取得する方法

@foreach ($friends as $friend) 
<input tabindex="1" type="checkbox" name="friend[]" id="{{$friend}}" value="{{$friend}}"> 
@endforeach 

私のコントローラでは、私がチェックボックスの値を取得し、配列に入れたいと思います。私はこれを行う方法を正確にわからないが、私はそれが何かのようであると仮定します。

array[]; 

foreach($friend as $x) 
if (isset(Input::get('friend')) { 
     array[] = Input::get('friend'); 

} 
endforeach 

は、あなたがこれを行うための解決策を私に提供してもらえますか?ありがとうございました。

EDIT:それは "もし" ループを通って行くのではありません

public function describe_favorite() { 

      $fan = Fan::find(Auth::user()->id); 
      $fan->favorite_venue = Input::get('venue'); 
      $fan->favorite_experience = Input::get('experience'); 

      $friends_checked = Input::get('friend[]'); 

      print_r($friends_checked); 

      if(is_array($friends_checked)) 
      { 
      $fan->experience_friends = 5; 
      } 

      $fan->save(); 


      return Redirect::to('fans/home'); 

     } 

これは私がコントローラに持っているものです。 print_rの出力が$ friends_checked変数の内容を確認するにはどうすればよいですか?

答えて

27

チェックボックスが関連している場合は、name属性に[]を使用する必要があります。サーバへの文字列値を渡す名前=「友人」とは対照的に、フォームフィールドの名前を使用

@foreach ($friends as $friend) 
<input tabindex="1" type="checkbox" name="friend[]" id="{{$friend}}" value="{{$friend}}"> 
@endforeach 


$friends_checked = Input::get('friend'); 
if(is_array($friends_checked)) 
{ 
    // do stuff with checked friends 
} 
+0

実際に何が入っているかをprint_r($ friends_checked)に見てみてください。 –

+0

私はそれを見ることができるように、この変数をコントローラからどのように印刷するのですか? – user1072337

+1

これをコントローラに入力してください:print_r($ friends_checked); –

0

=「友人[]」は、サーバに渡される配列名前友人を作成します。

1

アレイの友人にはキーが必要です。 $ friend-> idがあれば、このようなことを試すことができます。

@foreach ($friends as $friend) 
    <input tabindex="1" type="checkbox" name="friend[{{$friend->id}}]" id="{{$friend}}"> 
@endforeach 
+0

コントローラーでforループを使用する場合は、これが受け入れられる回答になります。 – viery365

関連する問題