@akdes

Как получить свойство модели через связь другой модели и не получить исключение, при отсутствии сего?

Привет всем.

Знаю, вопрос поставлен очень странно, ибо одной строчкой сложно описать проблему/сценарий:
хочется:
$value = $modelA->modelB()->where("foo", "bar")->first()->value;

приходится
$modelB = $modelA->modelB()->where("foo", "bar")->first();
if($modelB) {
   $value = $modelB->value;
}

1. Хотелось бы как в первом примере, но при этом не получать 500ую, если свойства нет, а лишь NULL.
2. На сколько целесообразен такой подход? Желание возникло лишь из-за сокращения и читаемости кода(имхо)...

Большое спасибо
  • Вопрос задан
  • 230 просмотров
Пригласить эксперта
Ответы на вопрос 2
amelihovv
@amelihovv
Фулстек веб разработчик
Один способ описан по ссылке
laraveldaily.com/belongsto-default-models-no-need-...
Второй - использовать ?? оператор
$value = $modelA->modelB()->where("foo", "bar")->first()->value ?? null;
Ответ написан
flygrounder
@flygrounder
Python/Django
Используй try/catch. Если часто так пишешь, то напиши функцию, которая обрабатывает это через try/catch
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы