我能够在视图中动态填充复选框。但我在阅读控制器中已选中的复选框时遇到问题。我想要复选框的ID,名称和值。例如,如果我有两个复选框,那么我希望每个复选框的id,name和value指示是否选中。现在我得到的只是一个只给出值1的数组。
我有观点:
<div class="control-group">
{{ Form::label('permission-lbl', 'Permissions') }}
<div class="controls">
@foreach($permissions as $p)
{{ Form::checkbox('permissions[]',$p->id,false,array('class'=>'permission')) }} {{Form::label('permissions[]',$p->name)}}
@endforeach
</div>
</div>
控制器是:
public function store() {
$validation = new CreateGroupValidator;
if ($validation->passes()) {
try {
// Create the group
$permissions = Input::get('permissions');
if(is_array($permissions))
{
//i need each checkbox's id, name and value here
}
$group = Sentry::createGroup(array(
'name' => Input::get('name')
));
Notification::success('New group was saved.');
return Redirect::route('admin.groups.index');
}
catch (\Cartalyst\Sentry\Groups\GroupExistsException $e)
{
Notification::error('A group with same name already exists.');
}
}
return Redirect::back()->withInput()->withErrors($validation->errors);
}
有什么建议吗?
答案 0 :(得分:1)
您将从表单中收到的权限数组将采用以下格式:
// In the form [position] => Input `Value` Attribute
[permissions] => Array (
[0] => 1,
[1] => 2,
)
key
是数组中元素的位置(无用),而value
是所有已检查输入的属性value
。
在您的特定情况下,输入值属性是循环的每次迭代中$p->id
的值。
请记住,您只会收到表单中已选中的复选框,如果未选中任何人,则会收到一个空数组。