【发布时间】:2018-01-19 20:19:54
【问题描述】:
我读过CakePHP multiple checkbox array HTML the right way,但得到了奇怪的结果。我有一个标签列表(来自一个名为 Tag 的模型)。我想遍历这些并在视图中为它们输出复选框。
所以我在我的控制器中获得了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[] 的语法。
但是当我检查标记时,它会为每个<input type="checkbox"> 生成以下name 属性:
data[GroupTag][tag_id[]]
不应该这样
data[GroupTag][tag_id][]
?
我的想法是我有多个带有name 属性tag_id[] 的复选框,然后在控制器中我可以循环检查已检查的内容。
请有人对此提出建议,因为我无法使其正常工作,并查看了此处/文档中提供的示例。
【问题讨论】:
-
尝试使用
$this->Form->checkbox('tag_id.', array( 'value'=> $tag_id)) -
那行得通。但这是正确的 Cake 做法吗?输出似乎是正确的,因为我认为
data[GroupTag][tag_id][]适合我正在尝试做的事情 - 遍历多个名为tag_id[]的复选框? -
是的,这是正确的方法
标签: cakephp cakephp-2.0