Получение неверного аргумента для foreach() в laravel 5.4

Я пытаюсь получить доступ к API, но, к сожалению, я получаю неверный аргумент. Ниже мой код в представлении.

<thead>
  <tr>
    <th>Id</th>
    <th>Name</th>
    <th>Address</th>
    <th>Career</th>
  </tr>
</thead>
    <tbody>
      @foreach ($students as $student)
      <tr>
        <td>{{$student->id}}</td>
        <td>{{$student->name}}</td>
        <td>{{$student->address}}</td>
        <td>{{$student->career}}</td>
      </tr>
        @endforeach
    </tbody>

Ниже мой контроллер для студентов.

class StudentController extends ClientController
 {
       public function getAllStudents()
  {
    $students = $this->obtainAllStudents();

  return view('students/all-students', ['students' => $students]);
   }
 }

Функция get allAllStudents берется из класса ClientController

protected function obtainAllStudents()
{
  $this->performGetRequest('https://lumenapi.juandmegon.com/students');


}

1 ответ

Решение

Вам нужно проанализировать данные, которые должны быть похожи

  return view('students/all-students', ['students' => $students->data]);

Столько, сколько я смог увидеть ваш ответ от

'https://lumenapi.juandmegon.com/students'

вы получаете объект, который содержит массив, чтобы пройти массив, вы должны сначала получить объект.

Или вы можете напрямую использовать в блейд-файле, как

@foreach ($students->data as $student)

и вы не вернулись в функцию

protected function obtainAllStudents()
{
//you missed return here
  return $this->performGetRequest('https://lumenapi.juandmegon.com/students');
}
Другие вопросы по тегам