2017-01-02 46 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' 
)); 

现在表单提交,子实体(图片)将创建/更新。

注意:您需要明确照顾图像上传。

希望这会有所帮助!