15
在Doctrine 2中是否可以創建兩個對象,它們是多對多的,並且只有其中的一個對象才能保存以保存兩者?Doctrine 2 ManyToMany cascade
用戶實體:
/**
* Owning Side
*
* @ManyToMany(targetEntity="Role", inversedBy="users", cascade={"persist"})
* @JoinTable(name="user_roles",
* joinColumns={@JoinColumn(name="user_id", referencedColumnName="id")},
* inverseJoinColumns={@JoinColumn(name="role_id", referencedColumnName="id")}
* )
*/
public $roles;
角色實體:
/**
* Inverse Side
*
* @ManyToMany(targetEntity="User", mappedBy="roles")
*/
public $users;
保存:
$role = new Role();
$user = new User();
$user->roles->add($role);
$role->users->add($user);
$em->persist($user);
$em->flush();
它不工作,trows錯誤「一個新的實體是通過發現未配置爲級聯持久性操作的關係:Entities \ Role @ 0000000004a29c11000000005c48cb75。顯式保留新實體或者配置級聯持久化關係的操作。「
正如@OneToOne(targetEntity =「My_Model_FasciaEta」,cascade = {「persist」}) – max4ever 2011-11-18 11:16:29