生成された多対多リレーションのデフォルトの動作について疑問に思っています。リレーションの所有側を永続化すると、リレーションは関連付けテーブルに正しく格納されますが、反転側を永続化すると、データベース内のリレーション テーブルが更新されません。 .
私は simfony2 によって 2 つの CRUD を生成しましたが、これは少なくともこの「問題」ではうまく機能します。いくつかのスレッドと doctrine2 のドキュメントを読みましたが、それ以上はわかりませんでした。
また、片側と両側で cascade={"persist"} を使用しようとしましたが、まだ運がありません。
どんな助けでも素晴らしいでしょう:
ここに私の User エンティティがあります:
/**
*
*
* @ORM\ManyToMany(targetEntity="SSV\AppBundle\Entity\Role", inversedBy="users")
* @ORM\JoinTable(name="users_roles",
* joinColumns={
* @ORM\JoinColumn(name="user_id", referencedColumnName="id")
* },
* inverseJoinColumns={
* @ORM\JoinColumn(name="role_id", referencedColumnName="id")
* }
* )
*/
private $roles;
/**
* Add role
*
* @param \SSV\AppBundle\Entity\Role $role
*/
public function addRole(SSV\AppBundle\Entity\Role $role)
{
$this->roles[] = $role;
}
/**
* Get roles
*
* @return \Doctrine\Common\Collections\Collection
*/
public function getRoles()
{
return $this->roles;
}
と私の役割エンティティ:
/**
*
*
* @ORM\ManyToMany(targetEntity="SSV\AppBundle\Entity\User", mappedBy="roles")
*/
private $users;
/**
* Add user
*
* @param SSV\AppBundle\Entity\User $user
*/
public function addUser(SSV\AppBundle\Entity\User $user)
{
$this->users[] = $user;
}
/**
* Get user
*
* @return \Doctrine\Common\Collections\Collection
*/
public function getUsers()
{
return $this->users;
}
Controller クラスは、デフォルトの動作で確実に動作するようになったので、まだ変更されていません。私はこれで間違っていますか?
私を助けてください!