Вы можете использовать orderBy
с first()
и обернуть double optional
здесь, чтобы гарантировать, что вы не получите property of undefined
ошибок:
return optional(optional($this->task_groups()->where('assigned', true)->with('setting')->orderBy('id', 'desc')->first())->setting)->step;
Вы получите step
, еслимодель существует, в противном случае null
.
Это имеет 2 преимущества и 1 недостаток:
Преимущества
- Исключает дополнительный запрос
- Применяет энергичную загрузку для решения n..1
Недостатки
Боже мой, какой-то уродливый код.