Size: a a a

2020 December 13

А

Александр in Laravel Pro
Приветствую.
Есть модель Employee, в ней
    public function photos()
   {
       return $this->morphMany(Photo::class, 'photoable');
   }

Таблица photos в БД не содержит никаких employee_id, поэтому при удалении сотрудника, фотографии из таблицы photos по понятным причинам не удаляются. Как реализовать удаление в коде? Спасибо.
источник

ДТ

Дмитрий Тремасов... in Laravel Pro
Александр
Приветствую.
Есть модель Employee, в ней
    public function photos()
   {
       return $this->morphMany(Photo::class, 'photoable');
   }

Таблица photos в БД не содержит никаких employee_id, поэтому при удалении сотрудника, фотографии из таблицы photos по понятным причинам не удаляются. Как реализовать удаление в коде? Спасибо.
1. Триггер
2. Крон
источник

ДТ

Дмитрий Тремасов... in Laravel Pro
если нет массового удаления, то через event или переопределить метод delete
источник

А

Александр in Laravel Pro
Дмитрий Тремасов
если нет массового удаления, то через event или переопределить метод delete
Понял. Спасибо.
источник

A

Andrey in Laravel Pro
Observer, не? Если речь про код
источник

A

Andrey in Laravel Pro
А сорь, поиморфное
источник

A

Andrey in Laravel Pro
Ну даже так, в обсервере можно же по связи достать модель перед удалением родительской
источник

ДТ

Дмитрий Тремасов... in Laravel Pro
Andrey
Ну даже так, в обсервере можно же по связи достать модель перед удалением родительской
это не сработает с массовым удалением
источник

A

Andrey in Laravel Pro
Угу
источник

A

Andrey in Laravel Pro
Триггер в бд поможет, но это не со стороны кода. Остаётся евент
источник

ДТ

Дмитрий Тремасов... in Laravel Pro
как вариант вкрячится в onDelete у Builder так же как делает это SoftDeletes
источник

ДТ

Дмитрий Тремасов... in Laravel Pro
но я смутно представляю как там зашарашить два запроса на удаление
источник

G

GODU in Laravel Pro
У меня вылетает ошибка  Target [App\Contracts\ServiceAdapterInterface] is not instantiable. запускаю artisan, app->make(интерфейс) расположен в handle(), тоесть я так полагаю мне его надо в контролер пробросить, а в handle() прописывать вызовы контролера?
источник

G

GODU in Laravel Pro
GODU
У меня вылетает ошибка  Target [App\Contracts\ServiceAdapterInterface] is not instantiable. запускаю artisan, app->make(интерфейс) расположен в handle(), тоесть я так полагаю мне его надо в контролер пробросить, а в handle() прописывать вызовы контролера?
php artisan parser:run | grep ServiceAdapterInterface в контейнере его нет.
источник

ДТ

Дмитрий Тремасов... in Laravel Pro
ну а реализация интерфейса с сами интерфейсом связана?
источник

G

GODU in Laravel Pro
Короче начал фантазировать, забейте, в бутсрапе не прописал провайдера
источник
2020 December 14

MR

Maksat Ramazan in Laravel Pro
Всем добрый день! такой вопрос, сейчас появилось куча репозиториев где везде вставлен блок транзакции обернутый в try catch, как можно блок транзакции отдельно вынести и заимплементить к интерфейсам репозиториев?
кто то может реализовывал такое?
источник

A

Andrey in Laravel Pro
А нужно ли?
источник

MR

Maksat Ramazan in Laravel Pro
Дублируется блок
источник

G

GODU in Laravel Pro
Maksat Ramazan
Дублируется блок
Честно сам разбираюсь, как вывести грамотно блоки исключения, есть пример кода? Мое решение свелось прописывать выражение throw new exception где это надобно, а  блоки try cath вывожу на уровнем выше, теперь родилась идея написать отдельный класс по типу ошибки
источник