关系元素的表单验证



我在CakePHP中有一个表单,用于将信息保存到多个模型。我的第一个模型是"世界",我对这些字段没有问题,验证是正确的,它被正确地保存到数据库。第二个模型是"Country",我使用如下代码:

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

正确地保存到数据库中,但是没有验证(如必需字段的阶梯),也没有自动(内容类型的自动检测)。第三个模型是"区域",我使用与第二个相同的代码,但没有验证,没有自动,没有保存…

有人能帮忙吗?

谢谢你,Sebastien

没有看到你的代码的其余部分,我猜你试图在同一时间拯救多个国家。模型期望数据以特定格式出现:

$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
   }
}

祝你好运,快乐编码!

最新更新