Symfony2 ondelete设置Null

时间:2015-07-26 23:00:42

标签: php symfony foreign-keys constraints symfony-2.5

我是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

2 个答案:

答案 0 :(得分:6)

我相信 onDelete =" SET NULL" 应该是 JoinColumn 注释的一部分,而不是 ManyToOne 注释

答案 1 :(得分:0)

一种方法是搜索包含文章关系的所有评论,您要删除。 所以首先删除所有评论,而不是文章本身。 这是一种不改变注释的最佳方式。