Мне нужно правильно поймать, все мои исключения брошены в мои службы ZF2 и возвращают сообщение пользователю flashMessage.Обработайте все исключения, брошенные, помещайте их в flashMessage с ZF2
Это то, что я пытался в своем действии контроллера:
try {
$newConfigID = $this->configService->updateConfig($form->getData());
} catch (\Exception $e) {
$this->flashMessenger()->setNamespace('danger')->addMessage($e->getMessage());
return $this->redirect()->toRoute('config/update', array('idConfig' => $idConfig));
}
Это работает как шарм, но я не уверен, если это хорошо, чтобы сделать это в контроллер, если это лучше/чистый способ для достижения этой цели. Возможно, событие может справиться с этим и создать флэш-сообщение с $e->getMessage()
.
Это считается плохой архитектурой? Если да, как я могу это сделать правильно?
HUm, от того, что я вижу здесь, это то, что я хотел. Я поддерживаю вас и жду, пока тесты не примут ваш ответ! :) – Hooli
Я создал месяц назад, слушатель для флеш-сообщения, с EVENT_RENDER, я добавил здесь ваше решение handleException, все работает как ожидалось. Но есть ли способ сказать: Эй, я выбрал исключение, но я не хочу показывать вам выделенную страницу с флэш-сообщением, только я хочу показать вам страницу, на которой вы были до того, когда было создано исключение. – Hooli
Если я правильно понял, вы хотите остаться на одной странице и просто показать сообщение, что было создано исключение, верно? Я не уверен, что вы можете сделать это с помощью реального решения. Но, пожалуйста, напишите как новый вопрос, потому что это другая проблема. – blackbishop