关系元素的表单验证

时间:2011-04-29 15:50:54

标签: cakephp

我在CakePHP中有一个表单,用于将信息保存到多个模型中。 我的第一个模型是“世界”,我对这些字段没有问题,验证是正确的,并且它已正确保存到数据库中。 第二个模型是“国家”,我使用这样的东西:

echo $this->Form->input('Country.0.name');

这已正确保存到数据库中,但没有验证(如必需字段的楼梯),也没有自动(自动检测内容类型)。 第三个模型是“Region”,我使用与第二个相同的代码,但没有验证,没有自动化,也没有保存......

有人可以帮忙吗?

谢谢你, 塞巴斯蒂安

1 个答案:

答案 0 :(得分:0)

如果没有看到您的其余代码,我猜您正在尝试同时保存多个国家/地区。该模型期望数据以特定格式出现:

$this->data['Model']['field'];

你传递的是:

$this->data['Model'][0]['field'];

模型无法解释它。解决此问题的方法是在收集数据并独立发送每个请求时构建一个foreach。

foreach($country as $field) {
   $data['Country']['field'] = $field;
   // add other fields that are required

   if($this->Country->validates($data)) {
      $this->Country->create();
      $this->Country->save($data);
   } else {
      // error handling
   }
}

祝你好运,编码愉快!