我读过CakePHP multiple checkbox array HTML the right way但结果很奇怪。我有一个标签列表(来自名为Tag
的模型)。我想在View中循环遍历这些并输出复选框。
所以我在控制器中获得了Tag
数据:
$tags = $this->Tag->find('list', ['order' => ['name' => 'ASC']]);
$this->set('tags',$tags);
当我在我的视图中循环它时,我试图在Bootstrap标记之间输出复选框:
<?php echo $this->Form->create('GroupTag'); ?>
<?php foreach ($tags as $tag_id => $tag): ?>
<div class="checkbox">
<label>
<?php echo $this->Form->checkbox('tag_id[]', array( 'value'=> $tag_id)); ?>
<?php echo $tag; ?>
</label>
</div>
<?php endforeach; ?>
我从我链接到的帖子中复制了tag_id[]
的语法。
但是当我检查标记时,它会产生以下内容作为每个name
的{{1}}属性:
<input type="checkbox">
这应该不是
data[GroupTag][tag_id[]]
我的想法是,我有多个data[GroupTag][tag_id][]
属性name
的复选框,然后在控制器中我可以遍历已检查的内容。
请有人就此提出建议,因为我无法使其正常工作,并已查看此处提供的示例/ docs。
答案 0 :(得分:1)
试试这个
http://localhost:8983/solr/admin/cores
答案 1 :(得分:-1)
你也可以这样做:
$this->Form->input('GroupTag.tag_id', [
'type' => 'select',
'multiple' => 'checkbox',
'options' => $tag_id
]);
FormHelper::select(string $fieldName, array $options, array $attributes)
示例:
$options = array(
'Value 1' => 'Label 1',
'Value 2' => 'Label 2'
);
echo $this->Form->select('Model.field', $options, array(
'multiple' => 'checkbox'
));
输出:
<div class="input select">
<label for="ModelField">Field</label>
<input name="data[Model][field]" value="" id="ModelField"
type="hidden">
<div class="checkbox">
<input name="data[Model][field][]" value="Value 1"
id="ModelField1" type="checkbox">
<label for="ModelField1">Label 1</label>
</div>
<div class="checkbox">
<input name="data[Model][field][]" value="Value 2"
id="ModelField2" type="checkbox">
<label for="ModelField2">Label 2</label>
</div>
</div>