2017-01-02 47 views
0

我有所指的子實體父實體和類的寫法如下:插入與父母孩子實體Symfony的

class MyEntity { 
    /** 
    * ORM Annotations 
    */ 
    private $id; 

    /** 
    * ORM Annotations 
    */ 
    private $name; 

    /** 
    * @var string 
    * @ORM\OneToOne(targetEntity="Picture") 
    */ 
    private $image; 

    /** Getters & Setters **/ 
} 

private Image { 
    private $id; 
    private $image_url; 
} 

這裏,形象是一個弱實體,我不在插入MyEntity對象之前要插入圖像。基本上,我的問題是,我如何呈現MyEntity的表單,以便Image表單作爲其一部分顯示,並且當我保存MyEntity時圖像會保存。

回答

1

您的代碼如何來targetEntity="Picture",並且您已將Image定義爲子實體。我想有一個錯字,你需要糾正。

您需要將cascade={"persist", "update"}添加到您的image關聯中MyEntity

這將確保圖像實體被創建/更新以及MyEntity

現在的形式部分

創建ImageFormType,讓我們稱呼其爲ImageType。 在你的MyEntity FormType,添加新的FormType作爲一個新的領域:

$builder 
    ->add('image', ImageType::class, array(
     'label' => 'Image' 
)); 

現在表單提交,子實體(圖片)將創建/更新。

注意:您需要明確照顧圖像上傳。

希望這會有所幫助!