2013-08-12 3 views
4

У меня есть Users и Groups стол в ярком ОРРА Ларавеля. В группе может быть несколько пользователей, и пользователь может быть в нескольких группах, поэтому я использую сводную таблицу для реализации отношений «многие ко многим». В реальности отношения не много-ко-многим, потому что каждый пользователь может находиться только в одной группе, но система была разработана таким образом. Я мягко удаляю строки в таблице Users, поэтому при необходимости я могу восстановить пользователей позже.Как отключить удаление свода при мягком удалении в главном столе?

Проблема заключается в том, что при удалении пользователя система автоматически удаляет запись в сводной таблице. Это всегда одна запись. Я не стал так вести себя, только добавил строку protected $softDelete = true; к модели Users, поэтому я не понимаю, почему система автоматически удаляет записи поворота.

Я не хочу мягко удалять записи, я хочу только мягкого удаления и исключительно пользователей, и система не должна касаться ничего другого.
Я мог бы создать свою собственную функцию удаления, которая установила переменную deleted_at в фактическое время, но таким образом я не смог бы просто превратить мягкое удаление, изменив true на false, если мне это нужно.

Почему система автоматически удаляет записи поворота и как я могу отключить это поведение?

+0

Другой ответ предлагая добавить ограничение в вашем многие-ко-многим для фильтрации, не совсем то, что вы ожидали, также не уверен, что он работает. http://stackoverflow.com/a/18144975/439427 –

+0

Я хотел фильтровать взаимозависимые отношения. –

+0

По моему опыту, при мягком удалении строки она не удалит записи поворота, можете ли вы привести пример модели и кода? – SamV

ответ

1

Проверьте свою базу данных, если вы используете внешние ключи, которые могут быть установлены в ON UPDATE, ON DELETE «CASCADE». Вы должны установить его на «NO ACTION»

CONSTRAINT `fk_USER_Address_1` FOREIGN KEY (`userId`) REFERENCES `USER` (`userId`) ON UPDATE CASCADE ON DELETE CASCADE, 

к

CONSTRAINT `fk_USER_Address_1` FOREIGN KEY (`userId`) REFERENCES `USER` (`userId`) ON UPDATE CASCADE ON DELETE NO ACTION,