Laravel Soft Delete Не работает в сводной таблице

Я использую Laravel 5.2.

У меня есть 3 таблицы: book, user а также book_user (сводная таблица).

Я хочу использовать мягкие удаления в моей сводной таблице. Когда я attach книга для пользователя, отношения вставляются в book_user Таблица. Однако когда я detach В этом отношении запись в сводной таблице удаляется, хотя я добавил use SoftDeletes к модели сводной таблицы.

Как я могу реализовать мягкие удаления для записей в моей сводной таблице, когда я attach или же detach?

2

Решение

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

Просто идея, может быть, вы можете использовать sync вместо detach как это;

Перед этим нужно добавить deleted_at столбец к book_user стол как DATETIME вместо TIMESTAMP, Потому что новая версия MYSQL не поддерживает NULL за TIMESTAMP тип.

Мягкое удаление

$user->books()->sync(array(1 => array('deleted_at' => DB::raw('NOW()'))));

Получение

Также вы можете наложить ограничение на Eager Load:

public function books()
{
return $this
->hasMany('Book')
->whereNull('book_user.deleted_at');
}
4

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]