是否有可能在原则2创建两个对象是多对多的关联和呼叫仅坚持对其中一个方法来保存?
用户实体:
/**
* 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;
Run Code Online (Sandbox Code Playgroud)
角色实体:
/**
* Inverse Side
*
* @ManyToMany(targetEntity="User", mappedBy="roles")
*/
public $users;
Run Code Online (Sandbox Code Playgroud)
保存:
$role = new Role();
$user = new User();
$user->roles->add($role);
$role->users->add($user);
$em->persist($user);
$em->flush();
Run Code Online (Sandbox Code Playgroud)
它不起作用并产生错误"通过未配置为级联持久操作的关系找到新实体:Entities\Role @ 0000000004a29c11000000005c48cb75.显式保留新实体或在关系上配置级联持久操作."
Hak*_*yal 12
您应该申请cascade={"persist"}角色实体.
不是Doctrine的专家,但我认为Doctrine会检查相关实体的级联选项.
由于您将持久性从" 用户" 级联到" 角色",因此它会检查" 角色"实体是否应该使用级联持久化.
| 归档时间: |
|
| 查看次数: |
20836 次 |
| 最近记录: |