Php 拉威尔关系';s
我在拉威尔的关系上有点困难。我建立了CourseModel、CourseTimeModel和CourseInstructorModel之间的所有关系。但问题是我想从讲师表中获取讲师的姓名。是否可以使用关系从讲师表中获取讲师的姓名 CourseModel.phpPhp 拉威尔关系';s,php,laravel,Php,Laravel,我在拉威尔的关系上有点困难。我建立了CourseModel、CourseTimeModel和CourseInstructorModel之间的所有关系。但问题是我想从讲师表中获取讲师的姓名。是否可以使用关系从讲师表中获取讲师的姓名 CourseModel.php class CourseModel extends Model { protected $table = 'course'; protected $fillable = [ 'course_name',
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);-您还可以为此定义一个范围