我有一个看起来像这样的视图文件:
<?php
echo $this->Form->create('ModelName');
echo $this->Form->input('ModelName.0.firstField');
echo $this->Form->input('ModelName.0.secondField');
echo $this->Form->input('ModelName.1.firstField');
echo $this->Form->input('ModelName.1.secondField');
echo $this->Form->end();
?>
我的问题是,如何验证这些数据?我没有保存,所以调用 save 或 saveAll 方法对我来说似乎毫无意义。我只想在处理数据之前验证数据并将结果显示给用户。
当前使用会发生什么:
<?php
if ($this->request->is('post')) {
$this->ModelName->set($this->request->data);
if ($this->ModelName->validates()) {
echo $this->Session->setFlash('Success');
} else {
echo $this->Session->setFlash('Failure');
}
}
?>
即使我输入肯定会失败的数据,它是否总是成功。我也试过:
<?php
if ($this->request->is('post')) {
if ($this->ModelName->validateMany($this->request->data)) {
echo $this->Session->setFlash('Success');
} else {
echo $this->Session->setFlash('Failure');
}
}
?>
并且总是返回成功,但这可能是因为我不知道如何正确使用 validateMany。