2010-04-29 71 views
2

我已經創建了一個自定義的數據源,它從Web API獲取數據,現在我正在尋找實現錯誤處理的方法。CakePHP - 如何在模型中使用onError

在數據源中,我打電話給$ model-> onError()。在模型中,我創建了onError方法,並且可以使用$ this-> getDataSource() - >錯誤訪問錯誤細節;

但是我不能重定向或設置一個Flash消息,因爲這隻能發生在控制器中,所以我應該在這裏做什麼來向用戶傳達錯誤?

回答

2

錯誤與模型中的字段相關嗎?如果是這樣,請在Model :: onError()中使用$ this-> invalidate($ field,$ message)

+0

謝謝。 我已經添加了$ this-> invalidate(0,$ this-> getDataSource() - > error);進入模型onError方法。如果(!$ this-> Model-> validates())$ this-> flash($ this-> Model-> validationErrors [0],重定向位置..)( 要從控制器訪問它,我在做: ; – Richard 2010-05-05 14:06:34

0

我會將模型中的所有錯誤編譯成一組錯誤,可能是一個數組。然後我將它設置爲模型中的變量。

因此,在我的控制器中,我可以做$this->Model->getErrors()或類似的讀取並返回模型中設置的值。

然後在我的控制器的beforeFilter()我會檢查是否有任何錯誤,如果有,將它們推入閃存。 $this->Session->setFlash($this->Model->getErrors(),'default',array('class'=>'error-message'));

相關問題