2011-09-06 9 views
8

私は私の教義エンティティ内の次の関係があります。ドクトリン2:複雑な関係で保存するエンティティ

FavoriteRecipe

/** 
* @ManyToOne(targetEntity="User", inversedBy="favoriteRecipes") 
*/ 
private $user; 

/** 
* @ManyToOne(targetEntity="Recipe", inversedBy="favoriteRecipes") 
*/ 
private $recipe; 

レシピ

/** 
* @OneToMany(targetEntity="FavoriteRecipe", mappedBy="user") 
*/ 
private $favoriteRecipes; 

ユーザー

$favoriteRecipe = new \Entities\FavoriteRecipe(); 
$favoriteRecipe->setRecipe($recipe); 
$favoriteRecipe->setUser($user); 
$this->_em->persist($favoriteRecipe); 
$this->_em->flush(); 

しかし、これは、次のメッセージで例外をスロー:

新しいエンティティをした関係を通じて発見された私は、次のコードを持っている私のコントローラの一

/** 
* @OneToMany(targetEntity="FavoriteRecipe", mappedBy="user") 
*/ 
private $favoriteRecipes; 

コンフィグレーションされていません。 とカスケード永続操作: エンティティ\ユーザ@ 00000000408bd010000000007cb1380e。明示的に 新しいエンティティを保持するか、または の関係でカスケード永続操作を構成します。

FavoriteRecipeエンティティを正しく作成して保存するにはどうすればよいですか?

答えて

7

すべてのリレーショナルエンティティにカスケードオプションを設定しましたか?これはexcampleためのカスケードプロパティを設定することによって行われます:カスケード= { "持続"、 "削除"}

を多分このページ:http://www.doctrine-project.org/docs/orm/2.0/en/reference/working-with-associations.html

またはこれらのビデオ: http://www.zendcasts.com/many-to-many-with-doctrine-2/2011/03/ http://www.zendcasts.com/one-to-many-with-doctrine-2/2011/03/

+1

の側には協会はカスケードオプションを追加しますか?所有側または逆側? – moteutsch

+0

それはあなたが望む動作に依存しますが、あなたの状況で私は反対側と思います。私はそれを試して、データベースで何が起こっているかを見てみましょう。 –

+2

そして、私は "あなたの所見をあなたと共有するためにここに戻ってきます"と付け加えます。人々はあなたを助け、人々を助けることを忘れないでください:) – Ninj

関連する問題