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

Php symfony 2无法正确保存到数据库,php,symfony,doctrine-orm,save,Php,Symfony,Doctrine Orm,Save,短 我的实体有: /** * @ORM\ManyToOne(targetEntity="Classes", inversedBy="") * @ORM\JoinColumn(name="class_id", referencedColumnName="id") */ protected $class; 我没有反向关系,因为我不需要它。 我试着这样做: $class = $this->getDoctrine()->getRepository('TomasRClassBu

短 我的实体有:

/**
 * @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。。但是,如果我使用表单编辑它,这是表单字段:

$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字段设置正确了

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


提前谢谢,我知道它可能有点难读,对此我很抱歉:)

当你保存它时,它会显示任何错误吗?此外,如果你没有inversedBy,你不应该在
@ORM\manyTone(targetEntity=“Classes”,inversedBy=“”)中写它。
不,没有错误,@ORM\manyTone(targetEntity=“Classes”)没有帮助您调试验证吗?也许它永远无法通过验证来持久化新项。您可以在验证的
if
子句中转储某个内容,以确保它是否通过验证,以及您定义为type的
Fighter
FighterForm
是什么?