没有页面刷新或重定向的FlashBag

时间:2017-09-08 06:02:41

标签: symfony symfony-forms

我有一个功能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}}

1 个答案:

答案 0 :(得分:0)

如果你想在没有重定向/刷新的情况下这样做,请忘记严格的php中的验证。只有一些严格的前端技术 - 比如角js,vue.js和一些api调用