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

时间:2019-10-28 05:24:47

标签: php laravel 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

1 个答案:

答案 0 :(得分:1)

关系属于模型实例,意味着雄辩的对象。当您使用查询生成器时,您将获得stdObject而不是一个雄辩的对象。因此您的关系无法正常工作。为此,您必须使用口才而不是查询生成器。

<ul class="list list-icons list-icons-style-3 list-primary">
    <li><i class="fa fa-calculator"></i> <strong>Entries:</strong> <?php echo $show_enter; ?> -  <strong>Attended:</strong> <?php echo $show_attended; ?> -  <strong>Percent Turnout:</strong> 
    <?php
    if(!empty($show_enter)){
        echo round_out(($show_attended/$show_enter)*100) . '%';
    }else{
        echo '%';
    }
    ?></li>
</ul>

视图将像

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