Отображение данных с отношениями многие ко многим laravel 6

Я новичок в 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


person Fayakon    schedule 28.10.2019    source источник
comment
Можете ли вы также опубликовать целые классы teachers и qualifs? имена таблиц, локальные и внешние ключи.   -  person Kishore Kadiyala    schedule 28.10.2019


Ответы (1)


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

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
person zahid hasan emon    schedule 28.10.2019
comment
я добавил в свой код следующее: $ qualifs = Qualif :: get (); $ Teacher1 = Учитель :: получить (); теперь ошибка: :: Свойство [qualifs] не существует в этом экземпляре коллекции. - person Fayakon; 28.10.2019
comment
поскольку вы используете get() для учителей, вам нужно сначала зациклить это, а затем прокрутить отношения. - person zahid hasan emon; 28.10.2019
comment
не могли бы вы отредактировать свой ответ с помощью цикла, я думаю, что это решит мою проблему. - person Fayakon; 28.10.2019
comment
Я добавил, но у меня есть список квалификационных таблиц, он должен отображать только 2 квалификации, он показывает таблицу квалификаций неоднократно. - person Fayakon; 28.10.2019
comment
вы пишете код так же, как мой код ?? я так не думаю - person zahid hasan emon; 28.10.2019
comment
Давайте продолжим это обсуждение в чате. - person Fayakon; 28.10.2019