Php 拉威尔关系';s

Php 拉威尔关系';s,php,laravel,Php,Laravel,我在拉威尔的关系上有点困难。我建立了CourseModel、CourseTimeModel和CourseInstructorModel之间的所有关系。但问题是我想从讲师表中获取讲师的姓名。是否可以使用关系从讲师表中获取讲师的姓名 CourseModel.php class CourseModel extends Model { protected $table = 'course'; protected $fillable = [ 'course_name',

我在拉威尔的关系上有点困难。我建立了CourseModel、CourseTimeModel和CourseInstructorModel之间的所有关系。但问题是我想从讲师表中获取讲师的姓名。是否可以使用关系从讲师表中获取讲师的姓名

CourseModel.php

class CourseModel extends Model {

    protected $table = 'course';

    protected $fillable = [
       'course_name',
       'fee',
       'duration',
       'description',
       'created_at',
       'updated_at',
    ];

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

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

    public function getCourses() {
        $courses = $this->with(['courseTime', 'courseInstructor'])->paginate(10);
        return $courses;
    }
}
class CourseInstructorModel extends Model
{
    protected $table = 'course_instructor';

    protected $fillable = [
        'course_id',
        'instructor_id', 
        'created_at',
        'updated_at',
    ];

    public function course()
    {
        return $this->belongsTo('App\CourseModel');    
    } 
}
class CourseTimeModel extends Model
{
    protected $table = 'course_time';

    protected $fillable = [
        'course_time',
        'course_id',
        'created_at',
        'updated_at',
    ];

    public function course()
    {
        return $this->belongsTo('App\CourseModel');    
    } 
}
public function instructor() {
    return $this->belongsToMany('App\Instructor');
}
CourseInstructorModel.php

class CourseModel extends Model {

    protected $table = 'course';

    protected $fillable = [
       'course_name',
       'fee',
       'duration',
       'description',
       'created_at',
       'updated_at',
    ];

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

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

    public function getCourses() {
        $courses = $this->with(['courseTime', 'courseInstructor'])->paginate(10);
        return $courses;
    }
}
class CourseInstructorModel extends Model
{
    protected $table = 'course_instructor';

    protected $fillable = [
        'course_id',
        'instructor_id', 
        'created_at',
        'updated_at',
    ];

    public function course()
    {
        return $this->belongsTo('App\CourseModel');    
    } 
}
class CourseTimeModel extends Model
{
    protected $table = 'course_time';

    protected $fillable = [
        'course_time',
        'course_id',
        'created_at',
        'updated_at',
    ];

    public function course()
    {
        return $this->belongsTo('App\CourseModel');    
    } 
}
public function instructor() {
    return $this->belongsToMany('App\Instructor');
}
CourseTimeModel.php

class CourseModel extends Model {

    protected $table = 'course';

    protected $fillable = [
       'course_name',
       'fee',
       'duration',
       'description',
       'created_at',
       'updated_at',
    ];

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

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

    public function getCourses() {
        $courses = $this->with(['courseTime', 'courseInstructor'])->paginate(10);
        return $courses;
    }
}
class CourseInstructorModel extends Model
{
    protected $table = 'course_instructor';

    protected $fillable = [
        'course_id',
        'instructor_id', 
        'created_at',
        'updated_at',
    ];

    public function course()
    {
        return $this->belongsTo('App\CourseModel');    
    } 
}
class CourseTimeModel extends Model
{
    protected $table = 'course_time';

    protected $fillable = [
        'course_time',
        'course_id',
        'created_at',
        'updated_at',
    ];

    public function course()
    {
        return $this->belongsTo('App\CourseModel');    
    } 
}
public function instructor() {
    return $this->belongsToMany('App\Instructor');
}

我使用CourseModel和讲师模型之间的多对多关系解决了我的问题。 这是我在CourseModel.php中编写的代码

class CourseModel extends Model {

    protected $table = 'course';

    protected $fillable = [
       'course_name',
       'fee',
       'duration',
       'description',
       'created_at',
       'updated_at',
    ];

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

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

    public function getCourses() {
        $courses = $this->with(['courseTime', 'courseInstructor'])->paginate(10);
        return $courses;
    }
}
class CourseInstructorModel extends Model
{
    protected $table = 'course_instructor';

    protected $fillable = [
        'course_id',
        'instructor_id', 
        'created_at',
        'updated_at',
    ];

    public function course()
    {
        return $this->belongsTo('App\CourseModel');    
    } 
}
class CourseTimeModel extends Model
{
    protected $table = 'course_time';

    protected $fillable = [
        'course_time',
        'course_id',
        'created_at',
        'updated_at',
    ];

    public function course()
    {
        return $this->belongsTo('App\CourseModel');    
    } 
}
public function instructor() {
    return $this->belongsToMany('App\Instructor');
}

您可以通过以下方式获取讲师的姓名:

$courseModel = CourseModel::find(1);
$instructor_name = $courseModel->courseInstructor->instructor_name;

错误在哪里?你想在哪里利用你的关系?我想把所有的课程都学完CourseModel@getCourses()使用关系。$course=CourseModel::find(n)$课程讲师=$course->courseInstructor$课程时间=$course->courseTime()->分页(10);我看到你试图这么做,但到底是什么不起作用?问题在哪里?对我来说,GetCourses函数不应该出现在模型中。这是控制器代码,您只需调用$courses=App\Course::with(['courseTime','courseInstructor'])->paginate(10);-您还可以为此定义一个范围