Доктрина Каскадное удаление / обновление внешнего ключа превышает максимальную глубину 15

Я использую Symfony: 2.8 с пакетом доктрин: 1.5.

мое сопоставление ассоциаций доктрины - это «один-ко-многим», двунаправленный, ссылающийся на себя, Один ко многим, со ссылками на себя.

вот мой код:

/**
 * @OneToMany(targetEntity = "Ranking", mappedBy = "parent")
 */
private $children;

/**
 * @var Ranking
 *
 * @ManyToOne(targetEntity = "Ranking", inversedBy = "children")
 *
 * @JoinColumn(name = "parent_id", referencedColumnName = "id", onDelete = "cascade")
 */
private $parent;

когда я пытаюсь удалить строку, я получаю эту ошибку: Общая ошибка: 3008 Каскадное удаление / обновление внешнего ключа превышает максимальную глубину 15. "

Мой вопрос: есть ли способ увеличить максимальную глубину доктрины? заранее спасибо.

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
0
634
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Нет, не можешь. На самом деле это ограничение MySQL, а не Doctrine.

https://dev.mysql.com/doc/refman/5.5/en/innodb-foreign-key-constraints.html

If ON UPDATE CASCADE or ON UPDATE SET NULL recurses to update the same table it has previously updated during the cascade, it acts like RESTRICT. This means that you cannot use self-referential ON UPDATE CASCADE or ON UPDATE SET NULL operations. This is to prevent infinite loops resulting from cascaded updates. A self-referential ON DELETE SET NULL, on the other hand, is possible, as is a self-referential ON DELETE CASCADE. Cascading operations may not be nested more than 15 levels deep.

Другие вопросы по теме