«Блейд» часть получения отношений через другую таблицу с помощью Laravel

#php #laravel #laravel-blade

#php #laravel #laravel-blade

Вопрос:

У меня есть 3 таблицы:

пользователь порядок Статус

Я хочу, чтобы каждый из моих пользователей мог получить доступ к статусу, который они заказывают. Итак, после поиска я обнаружил, что :

 'students' => User::where('name', 'like', '%'.$this->search.'%')
            ->with('order.status')
            ->paginate(20),
 

По-видимому, мои отношения работают хорошо, потому что, когда я пользователь «dd», я вижу связь порядка с отношением статуса.

Но теперь, как мне получить доступ к таблице состояния из моего @foreach($students as $student) .blade.php файла?

Я пробовал {{ $student->orde->status->statu }} (statu — это имя строки таблицы, к которой я хочу получить доступ), но Laravel это не устраивает.

Когда я это делаю {{ $student->order }} , я получаю это:

 [
  {
    "id":1,
    "user_id":1,
    "statu_id":1,
    "archive":0,
    "created_at":"2021-01-05T11:40:04.000000Z",
    "updated_at":"2021-01-05T11:40:04.000000Z",
    "status": {
      "id":1,
      "statu":"commandu00e9",
      "created_at":null,
      "updated_at":null
    }
  }
]
 

Итак, то, к чему я хочу получить доступ, есть. Просто я не знаю, как это получить.

Комментарии:

1. существует «много» заказов, так для какого из них вы ожидаете получить статус?

2. Начните с использования согласованного правописания… В вашем вопросе у вас было status , statu , staus , orde , и т.д… Я предполагаю, что вы имеете в виду status и order , но ваш JSON говорит statu , так что я не знаю…

3. Lagbox, я делаю foreach для пользователей, пользователь может сделать только один заказ в моем приложении, поэтому у пользователя есть только один статус заказа. Статус — это имя таблицы, в этой таблице у меня есть строка ‘statu’. «Orde» и «Staus» — это опечатка, извините.

4. Как выглядит order метод в User модели?

5. публичная функция order (){ return $this->hasOne(Order::class); }