Я новичок в 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"
но когда я обновил свою базу данных доктриной: 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
Я считаю, что onDelete = «SET NULL» должен быть частью JoinColumn аннотация, а не ManyToOne аннотаций.
Одним из способов будет поиск всех комментариев, связанных со статьей, которые вы хотите удалить.
Поэтому сначала удалите все комментарии, чем саму статью.
Это самый простой способ без изменения аннотации.