1

我想让用户一次发布或取消发布一些文章。因此,在文章列表视图中,我想在每一行(文章)旁边放置一个复选框并将这些复选框发送到控制器。

我尝试$this->Form->input('status')在循环中的每一行之后使用,但它为每篇文章创建了相同的复选框。(输入名称和ID相同)

如何创建一组复选框或类似的东西?以及如何在控制器中检查它们?

注意:每篇文章都有一个status字段,即tinyint1 个字符的字段。(所以 Cake 可以理解它是一个复选框)

4

1 回答 1

1

您需要为每个输入指定一个“索引”。

取而代之的是:

$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');

它的“索引”只是一个确保生成“唯一”输入的计数器。但是,重要的每一行都包含该行的输入id;CakePHP 将需要它来确定它应该更新哪个记录的状态。

进一步阅读

可以在此处找到有关字段/输入命名的文档:

FormHelper 字段命名约定

CakePHP - 创建一个编辑同一模型的多行的表单

于 2013-03-22T21:30:01.370 回答