Php Laravel多对多关系得到部分结果

Php Laravel多对多关系得到部分结果,php,laravel,many-to-many,Php,Laravel,Many To Many,我有课程和类别模型,它们之间有多对多的关系。所以我创建了CategoryCourse模型来分解关系。以下是我的三个模型: class CategoryCourse extends Model { private $foreignkeys = [ '$category_id','$course_id' ]; public function categories() { return $this->belongsToMany('App\Catego

我有课程和类别模型,它们之间有多对多的关系。所以我创建了CategoryCourse模型来分解关系。以下是我的三个模型:

class CategoryCourse extends Model
{
   private $foreignkeys = [
     '$category_id','$course_id'
   ];

   public function categories()
   {
     return $this->belongsToMany('App\Category');
   }

   public function courses()
   {
     return $this->belongsToMany('App\Course');
   }
}

class Category extends Model
  {
   protected $title = ['title'];

   public function categorycourse()
   {
     return $this->hasMany('App\CategoryCourse');
   }
}

class Course extends Model
{

   protected $fillable = [
       'title', 'desc'
   ];

   public function categorycourse()
   {
     return $this->hasMany('App\CategoryCourse');
   }
}
在我的控制器中,我有如下方法:

public function getCoursesByCategory(Request $request, $id)
 {
   $id = Hashids::decode($id);
   $categories = Category::findOrFail($id[0]);
   $courses = $categories->categorycourse()->get();
   return view('courses',compact('courses'));
 }
我在数据库中有三个表,它们是类别、课程和类别课程。我的视图显示的是category_课程的结果,而不是课程的结果。我在学拉威尔。有人能帮忙吗?我想在我的视图中显示属于某个类别的所有课程。 以下是我的查看代码:

@foreach($courses as $course)
  {{$course->title}}
@endforeach

您必须将代码更改为:

class Category extends Model
  {
   protected $title = ['title'];

   public function courses()
   {
     return $this->belongsToMany('App\Course', 'category_course', 'category_id', 'course_id');
   }
}
关系应仅在类别中

然后你打电话:

$courses = $categories->courses;