Как правило, обычный способ обработки ошибки - просто выполнить перенаправление следующим образом:
if ({something that is error}) {
$this->Session->setFlash(__('Error message'), true);
$this->redirect(array('controller' => 'some_controller', 'action' => 'some_action'));
}
Однако, есть несколько проверок, которые происходят во время раздела if ($this->request->is('post')) {
метода. Если какая-либо из проверок не удалась, я хочу выйти из остальных проверок, вернуть пользователя в форму со всеми настройками, которые он ввел ранее, чтобы им не пришлось снова заполнять формы. Как мне это сделать?
public function custom_method() {
// get some information here
if ($this->request->is('post')) {
// do_check
if (!do_check) {
// set flash
// log error
// don't run the rest of the checks - go to end of the if ($this->request->is('post'))
}
// do other check
if (!do_other_check) {
// set flash
// log error
// don't run the rest of the checks - go to end of the if ($this->request->is('post'))
}
// do database update
}
// do other stuff here
// then it goes to render view
}