Как получить доступ к полю объекта в laravel? - PullRequest
0 голосов
/ 20 апреля 2020

Я использую laravel Framework. Я могу получить данные из базы данных, связанные с этим кодом:

$orders = Order::with('orderType', 'orderStatus', 'user')->get();

Результат выполнения вышеуказанной команды:

[
{
  "id":16,
  "shop_id":1,
  "user_id":0,
  "delivery_cost":null,
  "address":null,
  "latitude":null,
  "longitude":null,
  "total_price":655000,
  "total_price_off":551000,
  "order_status_id":5,
  "order_type_id":3,
  "reserve_id":null,
  "created_at":"1399-02-01 13:25:51",
  "order_type":{
    "id":3,
    "name":"admin"
  },
  "order_status":{
    "id":5,
    "name":"system"
  },
  "user":null
}
]

Мой php код:

foreach($orders as $order){
   echo $order->order_status_name; \\ I get error for this line;
}

Теперь моя проблема в том, как мне получить доступ к полю имени в order_status? когда я хочу получить доступ к общей цене, я пишу этот код

$order->total_price

и получаю полную цену без каких-либо ошибок, но когда пишу этот код

$order->order_status->name

, я получаю эту ошибку:

Trying to get property 'name' of non-object

1 Ответ

1 голос
/ 20 апреля 2020

Проблема в том, что ваша общая цена всегда существует как поле, но order_type может быть пустым.

Вы можете использовать троичный код для быстрого отката в вашем коде, например:

!empty($order->orderStatus)?$order->orderStatus->name:null;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...