0

我有 3 张桌子;一个用于课程,一个用于课程表,另一个用于类别表,其中类别可以有多个课程。我想显示带有 classe_name 和 category_name 的课程列表。我在还包含课程名称的类和类别之间制作数据透视表,但我无法从表类别中显示 catgory_name 我不知道这是否是正确的方法

//显示课程的方法

public function index()
{
        
   $categories=Course_category::all();
   return view('teacher.courses')->with('categories',$categories);
}

     @foreach ($categories->classe as $item)
                    {{$item->category_name}}
     @endforeach

类别模型

     protected $table = 'categories';
            protected $fillable =['id','category_name','categorie_image'];
    
    
            /**
             * The roles that belong to the Course_category
             *
             * @return \Illuminate\Database\Eloquent\Relations\BelongsToMany
             */
    
            public function classe(){
    
                return $this -> belongsToMany('App\Classe','classe_categorie','categorie_id','classe_id');
            }

类模型

 protected $table = 'classes';
    protected $fillable=['id','classe_name','classe_image'];
    public function course_categorie() {

        return $this -> belongsToMany('App\Course_category','classe_categorie','classe_id','categorie_id');
    }
4

2 回答 2

0

您应该遍历类,而不是类别:

 @foreach ($categories->classe as $item)
    {{$item->category_name}}
 @endforeach

它应该是

 @foreach ($categories as $item)
    {{$item->classe->classe_name}}
    {{$item->category_name}}
 @endforeach

既然要显示类,为什么不收集Classe控制器中的所有 s 并从那里开始呢?除非你想按类别分组,这很容易用 eloquent 完成。

于 2021-06-26T18:41:20.163 回答
0

谢谢你的帮助我找到了解决方案

$categories=Course_category::with('classe')->get(); 

我在集合中使用循环内循环

@foreach ($categories as $item)
            {{-- {{$item->course_category->category_name}} --}}
              @foreach ($item->classe as $cat)
                  {{$cat->course_name}}
                  {{$cat->classe_name}}
              @endforeach
            @endforeach
于 2021-06-28T12:05:23.803 回答