我想获取我在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变量中的内容?
答案 0 :(得分: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
}
答案 1 :(得分:1)
数组好友必须有一把钥匙。如果有$ friend-&gt;如果您可以尝试这样的话。
@foreach ($friends as $friend)
<input tabindex="1" type="checkbox" name="friend[{{$friend->id}}]" id="{{$friend}}">
@endforeach
答案 2 :(得分:0)
在表单字段中使用name =“friend []”会创建一个名为friend的数组,该数组将传递给服务器,而不是name =“friend”,它将字符串值传递给服务器。