我是symfony2的新手,我开始了一个博客项目。该项目有两个实体,一个是帖子(Noticia
),另一个是评论(Comentario
)。
我需要删除帖子,但由于与评论的关系,我无法删除。
这是我的属性:
/**
* @ORM\ManyToOne(targetEntity="Noticia", inversedBy="comentarios", onDelete="SET NULL")
* @ORM\JoinColumn(name="noticia_id", referencedColumnName="id")
*/
private $noticia;
/**
* @ORM\OneToMany(targetEntity="Comentario", mappedBy="noticia")
*/
private $comentarios = array();
我试图放onDelete="SET NULL"
但是,当我用doctrine更新我的数据库时:php app/console doctrine:schema:update --force
我收到了这个错误:
The annotation @ORM\ManyToOne declared on property Noticia
Bundle\Entity\Comentario\::$noticia does not have a property named "onDelete".
Avaible properties: targetEntity, cascade, fetch, inversedBy
答案 0 :(得分:6)
我相信 onDelete =" SET NULL" 应该是 JoinColumn 注释的一部分,而不是 ManyToOne 注释
答案 1 :(得分:0)
一种方法是搜索包含文章关系的所有评论,您要删除。 所以首先删除所有评论,而不是文章本身。 这是一种不改变注释的最佳方式。