1

生成された多対多リレーションのデフォルトの動作について疑問に思っています。リレーションの所有側を永続化すると、リレーションは関連付けテーブルに正しく格納されますが、反転側を永続化すると、データベース内のリレーション テーブルが更新されません。 .

私は 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 クラスは、デフォルトの動作で確実に動作するようになったので、まだ変更されていません。私はこれで間違っていますか?

私を助けてください!

4

0 に答える 0