2016-10-28 2 views
0

Maby глупый вопрос, но я не вижу.Symfony3 форма для обновления не работает

Я хочу изменить данные из моей формы, эта форма содержит отношение между другим объектом. При создании нового элемента функция обновления не будет работать

Когда я делаю сброс var на $ form-> getData(); мой браузер выйдет из строя.

Внутри формы-> isValid мой var_dump ничего не показывает.

Также я попробовал вариант $ em-> merge, тот же результат.

Большое спасибо!

Функция редактирования

/** 
* @Route("/user/item/edit/{id}") 
*/ 
public function editItemAction($id, Request $request) 
{ 
    $em = $this->getDoctrine()->getManager(); 
    $item = $em->getRepository('AppBundle:Item')->find($id); 

    if (!$item){ 
     return $this->redirect('/user/item'); 
    } 

    $form = $this->createForm(ItemType::class, $item); 

    if ($form->isSubmitted() && $form->isValid()){ 
     $data = $form->getData(); 

     $em = $this->getDoctrine()->getManager(); 
     $em->persist($data); 
     $em->flush(); 

     return $this->redirect('/user/item'); 
    } 

    return $this->render('admin/item/edit.html.twig', [ 
     'form' => $form->createView() 
    ]); 
} 

типа Form

public function buildForm(FormBuilderInterface $builder, array $options) 
{ 
    $builder 
    ->add('category', EntityType::class, array(
    'class' => 'AppBundle:Category', 
    'choice_label' => function ($category) { 
     return $category->getName(); 
    })) 
    ->add('title', TextType::class) 
    ->add('shortText', TextType::class) 
    ->add('text', TextType::class) 
    ->add('link', TextType::class) 
    ->add('active', CheckboxType::class, [ 
     'required' => false 
    ]) 
    ->add('imageId', TextType::class) 
    ->add('Submit', SubmitType::class) 
    ->getForm(); 
} 

ВКЛЮЧАЕТ

use AppBundle\Entity\Category; 
use AppBundle\Entity\Item; 
use AppBundle\Form\ItemType; 
use Symfony\Bundle\FrameworkBundle\Controller\Controller; 
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route; 
use Symfony\Component\HttpFoundation\Request; 
use Symfony\Component\HttpFoundation\Response; 
use Doctrine\ORM\EntityRepository; 

ответ

4

Вы должны обработать запрос с вашей формой, иначе $form->isSubmitted() всегда будет возвращать false. Таким образом, после этой линии:

$form = $this->createForm(ItemType::class, $item); 

вы должны добавить:

$form->handleRequest($request); 
+0

Большое спасибо, и я был прав это был глупый вопрос :) –

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