显示具有多对多关系的数据laravel 6

问题描述 投票:0回答:1

我是laravel 6的初学者。我只想问一下。我想显示数据,但不显示。

index.blade.php:

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

Controller:

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'); 
}

注意:数据存储正确,仅显示问题。

ERROR:未定义的属性:stdClass :: $ qualifs

php laravel laravel-6
1个回答
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
© www.soinside.com 2019 - 2024. All rights reserved.