Существует ли кохана, эквивалентная следующей (получена из 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
....
}
Таким образом, вы находитесь в ситуации действия Контроллера и не хотите, чтобы отображался какой-либо другой контент, кроме вашей закодированной переменной 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
....
}
Для получения дополнительной информации вы можете проверить руководство, где Поток запросов приложения описано подробно.
Других решений пока нет …