Я простирающийся специальное исключение для все моей обработанного «ошибки приложения»Подайте вспышку конкретного исключения
abstract class AbstractApplicationException extends \Exception
{
public function __construct(array $context = array())
{
$this->context = $context;
parent::__construct('exceptions.'.lcfirst(self::classname()));
}
}
И я использую messages.xx.yml
для описания ошибки пользователя
exceptions:
incompatibleSettings: Vos réglages ne sont pas compatibles
I 'd хотел бы автоматически вводить вспышку с переведенным сообщением об исключении (вида AbstractApplicationException
), поэтому мне не нужно делать это на всех моих контроллерах
public myControllerAction()
try {
$someService->someFunction();
} catch (AbstractApplicationException $e) {
$flashBag->add('error',
$this->get('translator')->trans(
$e->getMessage(), $e->getContext()
)
);
}
$this->render('related_template.html.twig');
}
Я знаю, как перенаправить пользователя с прослушивателем, но я действительно хочу, чтобы пользователь приземлился на конкретный ответ действия, только с введенной вспышкой.
Спасибо за ваш ответ, этот код прослушивания исключений интересен. Я, наконец, использовал черту, чтобы добавить ярлык try/catcher, чтобы я мог продолжить выполнение моих контроллеров (т. Е. Вернуть соответствующий конкретный ответ). Я собираюсь добавить свое решение здесь –