【发布时间】:2013-10-02 04:01:00
【问题描述】:
当模型没有保存或返回任何类型的错误时怎么办?
$data = array(
'Model' => array(
'field1' => 'value1',
'field2' => 'value2',
)
);
try {
// Forget to add this
$this->Model->set($data);
if (!$this->Model->validates()) { // Returns true
throw new GenericErrorException("Can't validate");
}
$this->Model->create();
if (!$this->Model->save($data)) { // Returns false
debug($this->Model->invalidFields()); // Empty array
debug($this->Model->getDatasource()->getLog()); // Returns array without INSERT/UPDATE
throw new GenericErrorException("Can't save");
}
} catch(Exception $e) {
// LOG ERROR
}
我可以做些什么来验证发生了什么错误?
【问题讨论】:
-
在模型上设置任何数据之前拥有
if (!$this->Model->validates()) {是没有意义的。您是否有一个返回 false 并停止保存操作的beforeSave回调?有什么行为吗?$this->Model->validationErrors;的值呢 -
你没有正确使用 CakePHP,所以它不能告诉你哪里出了问题。
-
@tigrang 我忘记添加代码了,但是在验证之前已经设置了数据,对不起。
-
@tigrang 编辑代码。我的错。
标签: php cakephp cakephp-2.0 cakephp-2.1 cakephp-model