2017-03-01 13 views
0

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; 
    } 

誰も私を助けることができますか? ありがとうございます

答えて

1

このようにフォームの代わりに編集アクションを作成する必要があります。

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(), 
    )); 
} 
+0

ありがとう:) @MayaShah – Shefali

関連する問題