2013-10-07 1 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

Смежные вопросы