我是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
关系属于一个模型实例,意味着一个雄辩的对象。当您使用查询生成器时,您将获得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