Kohana 3.x — возврат из действия как можно скорее, если возникла ошибка

Существует ли кохана, эквивалентная следующей (получена из Symfony 1.4):

public function ajax_win() {

try {
...
} catch Exception($e) {

$response['errors'] = array($e->getMessage());

$this->template->content = json_encode($response);

// Id like to return here, early return if error encountered
// Symfony example
// Is there a Kohana counterpart, or just do empty return?
return sfView::NONE;
}

// More code here, which is why I want early return, so I don't have to nest conditionals
....
}

0

Решение

Таким образом, вы находитесь в ситуации действия Контроллера и не хотите, чтобы отображался какой-либо другой контент, кроме вашей закодированной переменной JSON.

Вам не нужно return ничего, так как это не так, как работают контроллеры. Тем не менее, вам нужно изменить $this->response.

Если вы находитесь в окружении Controller_Template, также важно установить $this->auto_render в FALSE (или что-то, что не TRUE), Итак after() Метод не отменяет все, что вы пытались.

Этот код не проверен, но должен сделать свое дело.

public function ajax_win() {

try {
...
} catch Exception($e) {
$data['errors'] = array($e->getMessage());
$response = new Response();
$response->body(json_encode($data));
$this->response = $response;
return;
}

// More code here, which is why I want early return, so I don't have to nest conditionals
....
}

Для получения дополнительной информации вы можете проверить руководство, где Поток запросов приложения описано подробно.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]