Symfony3更新表格不起作用

亚伦·兰伯斯(Yaron Lambers)

马比一个愚蠢的问题,但我没有看到。

我想更改表单中的数据,此表单包含其他实体之间的关系。创建新商品时,更新功能将无法使用

当我在$ form-> getData()上执行var dump时;我的浏览器将崩溃。

在form-> 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()
    ]);
}

表格类型

    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;
巴托斯·扎萨达(Bartosz Zasada)

您必须使用表单来处理请求,否则$form->isSubmitted()将始终返回false。因此,在此行之后:

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

您必须添加:

$form->handleRequest($request);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章