Есть две модели с отношением one-to-many
class Bonus {
function reward(): BelongsTo {
return $this->belongsTo(Reward::class);
}
function user(): BelongsTo {
return $this->belongsTo(User::class);
}
}
class Reward {
function bonuses(): HasMany {
return $this->hasMany(Bonus::class);
}
}
И сама модель Bonus привязана к юзеру тем-же отношением.
class User {
function bonuses(): HasMany {
return $this->hasMany(Bonus::class);
}
}
В Reward используется "мягкое" удаление (SoftDeletes).
Я получаю список бонусов вместе с их типами для отображения в админ интерфейсе.
$entries = $user->bonuses()->orderBy(...)
->with('reward')
->paginate();
Модель Bonus использует внутри себя обращение к Reward. Например, так:
public function getNameAttribute(): string {
return $this->reward->localizedAttribute('name');
}
Теперь, если я удаляю какой-то reward, то у меня получается ошибка
Call to a member function localizedAttribute() on null
В принципе, логично. Удалённая модель не загрузилась. Но по факту она в базе есть, просто помечена удалённой.
Вот мне нужно, что бы здесь удалённые модели тоже подтягивались и отображались.
Документацию посмотрел, там весьма скудное информация по мягкому удалению.