CakePHP - 如何在Model中使用onError

时间:2010-04-29 14:03:09

标签: cakephp error-handling

我已经创建了一个自定义数据源,它从web api中获取数据,我现在正在考虑实现错误处理。

在数据源中,我正在调用$ model-> onError()。在模型中,我创建了onError方法,我可以使用$ this-> getDataSource() - >错误访问错误详细信息;

但是我无法重定向或设置flash消息,因为这只能在控制器中进行,所以我应该在这里做些什么来将错误传达给用户?

2 个答案:

答案 0 :(得分:2)

错误是否与模型中的字段相关?如果是这样,请在Model :: onError()中使用$ this-> invalidate($ field,$ message)

答案 1 :(得分:0)

我会将模型中的所有错误编译成一组错误,可能在数组中。然后我将其设置为模型中的变量。

因此,在我的控制器中,我可以执行$this->Model->getErrors()或类似操作,然后读取并返回模型中设置的值。

然后在我的控制器beforeFilter()中,我会检查是否有任何错误,如果有,请将它们推入闪存。 $this->Session->setFlash($this->Model->getErrors(),'default',array('class'=>'error-message'));