2016-08-22 52 views
1

我在Laravel关系中有点困难。我完成了CourseModel,CourseTimeModel和CourseInstructorModel之间的所有关系。但问题是,我想从讲师表中获取instructor_name。有可能我可以从教师表使用关系中获取instructor_name?Laravel Relationship的

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; 
    } 
} 

CourseInstructorModel.php

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');  
    } 
} 

CourseTimeModel.php

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');  
    } 
} 
+0

哪里错误?你在哪里尝试使用你的关系? –

+0

我试图通过使用关系的CourseModel @ getCourses()来获得所有课程。 –

+0

$ course = CourseModel :: find(n); $ course_instructors = $ course-> courseInstructor; $ course_times = $ course-> courseTime() - > paginate(10); –

回答

1

我使用CourseModel和InstructorModel之间的多对多关系解决了我的问题。 这里是我的代码,我在CourseModel.php

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

写您可以通过这种方式获得instructor_name:

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