Как получить ошибки формы в удобной форме администратора

Я хочу получить ошибки формы в методе createEditForm ().
Я пытался это $ editForm-> getErrors (); но это возвращает 0 ошибок каждый раз, когда даже есть ошибка.
Это мой код:

public function createEventEditForm($entity, array $entityProperties)
{
$editForm = parent::createEditForm($entity, $entityProperties);
if($entity instanceof Event){
//dump($editForm->getErrors()); die;
//dump($editForm->getErrors()->count()); die;
$event_id = $this->request->query->get('id');
if(!$editForm->getErrors()->count()){
$event = new Event();
$event->setStatus(Event::STATUS_INACTIVE);
$this->getDoctrine()->getManager()->flush();
}
}
return $editForm;
}

Может кто-нибудь мне помочь?
заранее спасибо

0

Решение

Вы должны создать действие редактирования вместо формы, как это.

public function editEventAction()
{
$this->dispatch(EasyAdminEvents::PRE_EDIT);

$id = $this->request->query->get('id');
$easyadmin = $this->request->attributes->get('easyadmin');
$entity = $easyadmin['item'];
$fields = $this->entity['edit']['fields'];

$editForm = parent::createEditForm($entity, array($entity, $fields));
$deleteForm = $this->createDeleteForm($this->entity['name'], $id);
$editForm->handleRequest($this->request);

if ($editForm->isSubmitted() && $editForm->isValid()) {
$this->dispatch(EasyAdminEvents::PRE_UPDATE, array('entity' => $entity));
$this->em->flush();

$refererUrl = $this->request->query->get('referer', '');

return !empty($refererUrl)
? $this->redirect(urldecode($refererUrl))
: $this->redirect($this->generateUrl('easyadmin', array('action' => 'list', 'entity' => $this->entity['name'])));
} else {
if($editForm->getErrors()->count() > 0) {
// Do the stuff you want here like update status etc..
}
}

$this->dispatch(EasyAdminEvents::POST_EDIT);

return $this->render($this->entity['templates']['edit'], array(
'form' => $editForm->createView(),
'entity_fields' => $fields,
'entity' => $entity,
'delete_form' => $deleteForm->createView(),
));
}
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]