Laravel заставляют удалять события по отношениям

Я разрабатываю веб-приложение Laravel, используя Laravel 5.2. У меня очень простой вопрос … Как мне прослушать событие forceDelete для того, чтобы вызвать отношения модели ForceDelete?

Я искал в Интернете и S.O. для немногих, но все вопросы / ответы, которые я нашел, были добавлены к методу удаления, а также в документации API, я не нашел очень много …

В моем случае у меня есть модель реестра и модель RegistryDetail

Стол реестра

|id|name|surname|....

RegistryDetail таблица

|id|id_registry|....

Я создал для этого boot функция:

protected static function boot()
{
parent::boot();

static::deleted(function($registry) {
// Delete registry_detail
$registry->registryDetail->delete();
});

static::restored(function($registry) {
// Restore registry_detail
$registry->registrydetail()->withTrashed()->restore();
});
}

Поскольку обе модели имеют SoftDeletes static::deleted Функция вызывается только тогда, когда вызывается метод delete (). если я вызову метод forceDelete (), соответствующая модель не будет удалена из базы данных.

Если вам нужна дополнительная информация, дайте мне знать.

заранее спасибо

1

Решение

deleted событие все еще должно срабатывать при вызове forceDelete(), Внутри deleted() Метод события, вы можете проверить forceDeleting охраняемая собственность через isForceDeleting() чтобы убедиться, что вы регулярно удаляете или удаляете.

static::deleted(function($registry) {
// Delete registry_detail
if ($registry->isForceDeleting()) {
$registry->registryDetail->forceDelete();
} else {
$registry->registryDetail->delete();
}
});
6

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

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

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