我有一个功能private function setAcademicCalendar(FormEvent $event) {
/** @var CalendarEvent $calendar_event */
$calendar_event = $event->getData();
if ($calendar_event->getCalendar() instanceof Calendar) {
try {
$sem = $this
->container
->get('academic_calendar')
->getSemester($calendar_event->getStart());
$calendar_event->setSemester($sem);
} catch (\Exception $e) {
$this->container->get('session')->getFlashBag()->add('error', $e->getMessage());
}
}
}
/**
* {@inheritdoc}
*/
public static function getSubscribedEvents()
{
return [
FormEvents::SUBMIT => 'submitData',
FormEvents::PRE_SET_DATA => 'preSetData',
];
}
/**
* @param FormEvent $event
*/
public function submitData(FormEvent $event)
{
$this->setAcademicCalendar($event);
}
的事件订阅者。我想捕获异常,在flash包中显示错误消息并终止表单提交。基本上,我想留在表单中(没有重定向),给用户一个错误信息,不要保存表单。
我有两个问题。 1.我不知道终止进程2.闪存消息仅在页面刷新后显示。
{{1}}
答案 0 :(得分:0)
如果你想在没有重定向/刷新的情况下这样做,请忘记严格的php中的验证。只有一些严格的前端技术 - 比如角js,vue.js和一些api调用