2016-02-11 4 views
0

У меня есть следующий код в контроллере.Получение ошибок формы в коллекциях форм внутри контроллера Symfony 2

$em = $this->getDoctrine()->getEntityManager(); 
    $entity = $em->getRepository('CIInventoryBundle:DiscountLevelItem')->find($discountLevelItemId); 
    $form = $this->createForm(new DiscountLevelItemCollectionType(), $entity); 
    $form->bindRequest($request); 

    $errors = array(); 
    foreach ($form['discountLevelItemProducts'] as $formField) { 
     $errors[] = $formField->getErrors(); 
    } 
    var_dump($errors); 
    die; 

    if ($form->isValid()) { 
     //remove items without discount type 
     foreach ($entity->getDiscountLevelItemProducts() as $item) { 
      if (!$item->getDiscountType()) { 
       $entity->getDiscountLevelItemProducts()->removeElement($item); 
       $em->remove($item); 
      } 
     } 

     $em->persist($entity); 
     $em->flush(); 

     $responseData = array(
      'status' => 'success', 
      'message' => 'Supplier product discounts successfully saved.' 
     ); 
    } else { 
     $responseData = array(
      'status' => 'error', 
      'form' => $this-  >renderView('CIInventoryBundle:DiscountLevel:manageProducts.html.twig', array(
       'entity' => $entity, 
       'form' => $form->createView() 
      )) 
     ); 
    } 
    return new Response(json_encode($responseData), 200, array('Content-Type'=>'application/json')); 

я представил следующие данные:

ci_inventorybundle_discountlevelitemcollectiontype [_token]: 17044e40450d5546f4be40e6fbe28f2866dffcfb ci_inventorybundle_discountlevelitemcollectiontype [discountLevelItemProducts] [2] [перевозки]: 0,00 ci_inventorybundle_discountlevelitemcollectiontype [discountLevelItemProducts] [2] [discountValue]: 0.00 ci_inventorybundle_discountlevelitemcollectiontype [discountLevelItemProducts] [2] [discountType]: Исправлено: ci_inventorybundle_discountlevelitemcollectiontype [DiscountLevelItemProducts] [2] [вариант]: 1567

, когда я пытаюсь var_dump в $ ошибок я массива я получил следующее:

array(2) { 
    [0]=> 
    array(0) { 
    } 
    [1]=> 
    array(0) { 
    } 
} 

Я использую Symfony 2.0.23.

Мой вопрос заключается в том, как я могу получить форму ошибок в коллекциях форм программным путем?

Спасибо!

ответ

0

В качестве примера вы можете взять метод getErrorsAsString, чтобы получить необходимую функциональность. Также вы должны установить invalid_message в поле формы, чтобы изменить сообщение This value is invalid.

Смежные вопросы