CakePHP:从一个模型中检索多个记录,以便在一个表单中进行编辑

时间:2012-02-17 09:48:58

标签: cakephp model associations cakephp-2.0

美好的一天,

我有一个名为ProjectRequirement的模型,它属于Project,所以Project有很多ProjectRequirements

当我创建ProjectRequirement条目时,我使用了这个方法:

<?php
     echo $this->Form->inputs(array(
          'legend  => false,
          'fieldset' => false,
          'ProjectRequirement.1.description' => ...
          'ProjectRequirement.2.description' => ...
          'ProjectRequirement.3.description' => ...
     ));
?>

我这样做是为了能够使用saveMany()方法同时保存多条记录。但是,当我想在同一表格上再次编辑这些记录时,我看不到,能够做到这一点。我保留了相同的字段命名结构,并尝试按如下方式设置数据:

<?php
     $this->request->data = $this->ProjectRequirement->find('all', array('conditions' => ...));
?>

一个pr();显示正在返回记录,但它们没有填充表单字段。如果我删除这些数字并且只有一个这样的字段:

<?php
     echo $this->Form->inputs(array(
          'legend  => false,
          'fieldset' => false,
          'ProjectRequirement.description' => ...
     ));
?>

工作正常。如何设置数据,以便在多个inout字段中设置ProjectRequirement中的多个记录?或者不是吗?

重申:我在保存多条记录时没有问题,我在检索要显示的多条记录时遇到问题。

此致 西蒙

1 个答案:

答案 0 :(得分:0)

当您创建表单以保存许多字段时,您可以将字段命名为:

  • ProjectRequirement.1.name ...
  • ProjectRequirement.2.name ...
  • ProjectRequirement.3.name ...
  • ...

但是,在检索数据时,情况并不相同,并且此处应用了数组的一般规则以及索引的工作原理。所以只需将我的字段更改为:

  • ProjectRequirement.0.name ...
  • ProjectRequirement.1.name ...
  • ProjectRequirement.2.name ...
  • ...

工作是因为我只测试了数据库中的一条记录,那行应该是索引0而不是1。