1
我創建了一個具有自引用的實體。我的實體是這樣的:持久自引用實體不起作用
class Question
{
/**
* @ORM\OneToMany(targetEntity="Question", mappedBy="parent")
**/
private $children;
/**
* @ORM\ManyToOne(targetEntity="Question", inversedBy="children")
* @ORM\JoinColumn(name="parent_id", referencedColumnName="id")
**/
private $parent;
}
而且我創建了一個窗體來編輯一個問題。有了這個表格,我可以添加許多孩子到一個問題。在我發佈這個表單後,我將保存父對象的子對象。但是對於父母而言,孩子的堅持失敗了,數據庫中沒有任何事情發生。
public function manageDependencyAction(Request $request, $id)
{
$em = $this->getDoctrine()->getManager();
$question = $em->getRepository('AppMyBundle:Question')->find($id);
if (!$question) {
$this->get('session')->getFlashBag()->add('danger', $this->get('translator')->trans('objectNotFound'));
return $this->redirect($this->generateUrl('app_question_list'));
}
$form = $this->createForm($this->get('form.type.question'), $question, array())->add('save', 'submit', array('label' => 'save', 'translation_domain' => 'messages', 'attr' => array('class' => 'btn btn-primary')));
$form->handleRequest($request);
if ($form->isValid()) {
// dump($question->getChildren()); // This is not empty. In this array are the selected childs.
$em->persist($question);
$em->flush();
}
}
孩子是反的一面,但在教義自動持久性僅適用於持有端 – ghanbari 2015-03-25 06:35:57