Symfony 2: удаление связанных сущностей

Допустим есть две связанные сущности, Category и Post, и в yml они выглядят так:

App\MyBundle\Entity\Category:
    ...
    oneToMany:
        posts:
            targetEntity: Post
            mappedBy: category
App\MyBundle\Entity\Post:
    ...
    manyToOne:
        category:
            targetEntity: Category
            inversedBy: posts
            joinColumn:
                name: category_id
                referencedColumnName: id

Если оставить в таком виде, то при попытке удалить категорию, в которой есть посты, вылетит такое (или примерно такое) исключение базы данных:

Cannot delete or update a parent row: a foreign key constraint fails

Чтобы задать каскадное удаление, необходимо добавить строчку cascade: [persist,remove] в yml конфигурацию Category:

...
mappedBy: category
cascade: [persist,remove]

 

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*

code