我已经创建了一个自定义数据源,它从web api中获取数据,我现在正在考虑实现错误处理。
在数据源中,我正在调用$ model-> onError()。在模型中,我创建了onError方法,我可以使用$ this-> getDataSource() - >错误访问错误详细信息;
但是我无法重定向或设置flash消息,因为这只能在控制器中进行,所以我应该在这里做些什么来将错误传达给用户?
答案 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'));