Отображение данных со многими ко многим отношениям laravel 6 - PullRequest
0 голосов
/ 28 октября 2019

Я новичок в Laravel 6. Я просто хочу спросить. Я хочу отобразить данные, но они не отображаются.

index.blade.php:

@if(isset($teachers))
  @foreach($teachers->qualifs as $qualif)
      <li>{{ $qualif->qual }}</li>
  @endforeach
@endif

Контроллер:

public function index()
{
  $teachers= DB::table('teachers')->first();
  $qualifs = DB::table('qualifs')->find($teachers->id);
  return view('teachers.index',compact('teachers','qualifs'));
}

qualif.php:

public function teachers()
{
  return $this->belongsToMany('todolist\teacher', 'qualif_teachers');
}

teacher.php:

public function qualifs()
{
  return $this->belongsToMany('todolist\qualif', 'qualif_teachers'); 
}

Примечание: данные хранятся правильно, только отображает проблему.

ОШИБКА : неопределенное свойство: stdClass :: $ qualifs

1 Ответ

1 голос
/ 28 октября 2019

отношение относится к экземпляру модели, что означает красноречивый объект. когда вы используете построитель запросов, вы получите stdObject вместо красноречивого объекта. и, следовательно, ваши отношения не работают. чтобы сделать это, вы должны использовать eloquent вместо построителя запросов.

public function index()
{
    $teachers= teacher::get();
    return view('teachers.index',compact('teachers'));
}

, и представление будет выглядеть как

@foreach($teachers as $teacher)
    @foreach($teacher->qualifs as $qualif)
        <li>{{ $qualif->qual }}</li>
    @endforeach
@endforeach
...