symfony 2无法正确保存到数据库

时间:2014-03-12 21:07:12

标签: php symfony doctrine-orm save

简短 我的实体有这个:

/**
 * @ORM\ManyToOne(targetEntity="Classes", inversedBy="")
 * @ORM\JoinColumn(name="class_id", referencedColumnName="id")
 */
protected $class;

我没有反比关系,因为我不需要它。 我试着这样做:

    $class = $this->getDoctrine()->getRepository('TomasRClassBundle:Classes')->find($_POST['fighter']['class']);
                $item = new Fighter();
                $item->setName($_POST['fighter']['name']);
                $item->setClass($class);
//if i var_dump here $item->getClass(), its there, class where set correctly
                $item->setBelongsTo(1);
                $em = $this->getDoctrine()->getManager();
                $em->persist($item);
                $em->flush();

之后在数据库中,在class_id中我有null ..但是如果我用form编辑它,这就是表单字段:

$builder->add('class', 'entity', array('class' => 'TomasRClassBundle:Classes','property' => 'name')); 

在我提交表格之后我做了:

$item = $this->getDoctrine()->getRepository('TomasRClassBundle:Fighter')->find($id);
        $type = new FighterForm();

        $form = $this->createForm($type, $item);
        $form->handleRequest($request);


        if ($form->isValid()) {
            $em = $this->getDoctrine()->getManager();
            $em->persist($item);
            $em->flush();

            //return $this->redirect($this->generateUrl('admin_fighter_list'));
        }

现在db中的class_id字段设置正确。

我可以硬编码我的解决方案,但我想知道我做错了什么?

在此先感谢,我知道这可能有点难以阅读,抱歉:)

0 个答案:

没有答案