我想让用户一次发布或取消发布一些文章。因此,在文章列表视图中,我想在每行(文章)旁边放置一个复选框,并将这些复选框发送给控制器。
我尝试在循环中的每一行之后使用$this->Form->input('status')
,但它为每篇文章创建了相同的复选框。 (输入名称和ID相同)
如何创建一个复选框数组或类似的东西?以及如何在控制器中检查它们?
注意:每篇文章都有一个status
字段,这是一个tinyint
1个字符的字段。 (所以Cake可以理解它是一个复选框)
答案 0 :(得分:0)
您需要指定一个'索引'对于每个输入。
取而代之的是:
$this->Form->input('Article.status');
使用此:
$this->Form->input('Article.0.id');
$this->Form->input('Article.0.status');
$this->Form->input('Article.1.id');
$this->Form->input('Article.1.status');
// ....
$this->Form->input('Article.xxx.id');
$this->Form->input('Article.xxx.status');
它是'指数'只是一个柜台,以确保“独特”#39;输入生成。但是, 非常重要,每行包含该行的id
的输入; CakePHP将需要它来确定哪个记录它应该更新状态。
有关字段/输入命名的文档可在此处找到:
FormHelper field naming conventions
CakePHP - Create a form which edits multiple rows of the same model