11

我想获取我在 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

你能为我提供一个解决方案吗?谢谢你。

编辑:

这就是我在控制器中的内容:

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');

        }

它没有通过“if”循环。如何查看 print_r 的输出以查看 $friends_checked 变量中的内容?

4

3 回答 3

27

如果复选框是相关的,那么您应该在名称属性中使用 []。

@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
}
于 2013-10-08T01:12:24.037 回答
1

数组友元必须有一个 key 。如果有 $friend->id 你可以尝试这样的事情。

 @foreach ($friends as $friend)
  <input tabindex="1" type="checkbox" name="friend[{{$friend->id}}]" id="{{$friend}}">
 @endforeach
于 2014-07-15T14:58:56.250 回答
0

在表单字段中使用 name="friend[]" 创建了一个名为friend的数组,该数组传递给服务器,而不是 name="friend" ,它将字符串值传递给服务器。

于 2013-10-08T01:17:05.043 回答