2016-07-06 5 views
0

私は2つのエンティティページ(名前、説明...)とSeo(ページID、タイトル...)を持っています。私はSeoTypeのフォームPageを子供として築いた。フォームを送信した後、私は、Seoセクションがいっぱいになっているが、page_id(明白ではない)を持たないページエンティティを受け取る。子との関係でレコードを作成する

ページを保存して、自動的にseoセクションにpage_idを設定することもできますか?

申し訳ありませんが、私は明確に表現することはできません。

マイダンプされたオブジェクト:

enter image description here

答えて

1

ここでsymfonyのドキュメントによると:http://symfony.com/doc/current/cookbook/form/form_collections.html( '教義を:カスケード関係と "逆" 側を保存する' を参照)

は、フォームデータの場合クラスは所有側です:

class Seo 
{ 
    /** 
    * @ORM\ManyToOne(targetEntity="AppBundle:Page", cascade={"persist"}) 
    */ 
    private $page; 
} 

あなたのフォームが逆の側にある場合は、エンティティのように対処する:

class Seo 
{ 
    /** 
    * @ORM\OneToMany(targetEntity="AppBundle:Page", mappedBy="seo") 
    */ 
    private $pages; 

    public function addPage(Page $page) 
    { 
     $page->setSeo($this); 

     $this->pages->add($page); 
    } 
} 

class Page 
{ 
    /** 
    * @ORM\ManyToOne(targetEntity="AppBundle:Seo", inversedBy="pages") 
    */ 
    private $seo; 

    public function setSeo(Seo $seo) 
    { 
     $this->seo = $seo; 
    } 
} 
+0

私は知っているが、どのように行う必要がありますか? – siwymilek

+0

回答が編集されました。 – Alsatian

+0

テーブルが正しく設計されていません。今、seo_idをページエンティティに移動しました。 – siwymilek

関連する問題