CakePHP - Как использовать onError в модели - PullRequest
2 голосов
/ 29 апреля 2010

Я создал собственный источник данных, который извлекает данные из веб-API, и сейчас я смотрю на реализацию обработки ошибок.

В источнике данных я вызываю $ model-> onError (). В этой модели я создал метод onError и могу получить доступ к сведениям об ошибках с помощью $ this-> getDataSource () -> error;

Однако я не могу перенаправить или установить флэш-сообщение, потому что это может происходить только в контроллере, так что я должен делать здесь, чтобы сообщить об ошибке пользователю?

Ответы [ 2 ]

2 голосов
/ 30 апреля 2010

Имеют ли ошибки отношение к полям в вашей модели? Если это так, используйте $ this-> invalidate ($ field, $ message) в Model :: onError ()

0 голосов
/ 29 апреля 2010

Я бы скомпилировал все ошибки в модели в набор ошибок, возможно, в массив. Тогда я бы установил его как переменную в модели.

Таким образом, в моем контроллере я могу затем сделать $this->Model->getErrors() или подобное, чтобы прочитать и вернуть значение, установленное в модели.

Затем в моем контроллере beforeFilter() я проверю, есть ли какие-либо ошибки, и, если они есть, вставьте их во флэш-память. $this->Session->setFlash($this->Model->getErrors(),'default',array('class'=>'error-message'));

...