2 つのエンティティ間に多対多の関係があります。User
それらをAndと呼びましょう Group
。
作成/更新インターフェイスでは、それらを関連付けることができるため、グループ フォームからユーザーを、またはユーザー フォームからグループを直接関連付けることができると判断しました。リレーションの所有側がUser
今問題が来ます。ユーザーフォームインターフェイスからグループを関連付けると、すべてがうまくいき、完全に機能します(教義は所有側への変更を探します)。User
グループ フォーム インターフェイスから関連付けようとしても、何も機能しません。
明らかに、ユーザーをグループオブジェクトに「追加」し、フォームから渡したすべてのユーザーオブジェクトにグループ (this) を追加する必要があることを完全に知っています。Group
実際、これはエンティティへのコードのスニペットです
public function setUsers(\Doctrine\Common\Collections\ArrayCollection $utente)
{
/* snippet of code for removing old association , didn't reported */
foreach($utente as $u){
$this->users[] = $u;
$u->addGroups($this);
}
}
このスニペットから作成するまで、彼の仕事はうまくいきます。アップデートしても、そうではありません。
ですから、これはソナタの問題か、現時点では見逃していたものに違いないと思います。
何かアドバイス?
アップデート
ここで何が起こっているのかを理解するのにしばらく時間を費やした後、更新操作に呼び出されていないことがわかりましたsetUser()
(既存のエンティティに基づいて構築されたフォームを送信すると読みます)。したがって、新しいエントリを作成したときにのみコードが実行されます (まだ解決策がありません)。