восстановить софт удалить ребенка в laravel - PullRequest
0 голосов
/ 16 апреля 2020

Я использую laravel, и я хочу восстановить дочерний элемент, например, когда я восстановил родительский элемент, я удалил пользователя, и у каждого пользователя есть магазин, поэтому магазин был удален с помощью $ cascadeDeletes и всех дочерних элементов, связанных с пользователем, но когда я хочу чтобы восстановить пользователя, его / ее магазин не будет восстанавливать

вот модель магазина

  protected $cascadeDeletes = ['ProductCategories' , 'products', 'slideshows', 'purchases', 'vouchers', 'brands', 'feedbacks', 'tags', 'subscribers', 'invoice', 'donwloadLinkRequests', 'stats', 'compares', 'wishlists', 'faqs','shopContact']

и модель пользователя

  protected $cascadeDeletes = ['addresses', 'userInformation', 'wishlist', 'comments','compare', 'shop', 'purchases', 'cart'];

** Я использую iatstuti / laravel -cascade-soft-delete, поэтому есть ли способ с этим **

1 Ответ

1 голос
/ 16 апреля 2020

Вы можете добавить прослушиватель для модели пользователя restoring событие и восстановить соответствующий магазин. В функцию загрузки пользовательских моделей добавьте следующее:

static::restoring(function($user) {
    $user->shop()->withTrashed()->first()->restore();
});

См. события модели .

...