Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
一对多关系Laravel出错_Laravel_Eloquent - Fatal编程技术网

一对多关系Laravel出错

一对多关系Laravel出错,laravel,eloquent,Laravel,Eloquent,我有视频类别和视频课程之间的关系,一个类别可以有很多课程,我想通过视频类别项目获得视频课程,但得到错误 视频分类模型 class VideoCategory extends Model { public function video_courses(){ return $this->hasMany('App\VideoCourse'); } } 视频课程模式 class VideoCourse extends Model { public

我有视频类别和视频课程之间的关系,一个类别可以有很多课程,我想通过视频类别项目获得视频课程,但得到错误

视频分类模型

class VideoCategory extends Model
{
    public function video_courses(){
        return $this->hasMany('App\VideoCourse');
    }   
}
视频课程模式

class VideoCourse extends Model
{

    public function video_category()
    {
        return $this->belongsTo(VideoCategory::class);
    }

}
我的看法

@forelse ($category->video_courses as $video_course)
   <a href="#"">{{$course->title}}</a>
@empty
   <p>No Video Courses Available</p>
@endforelse
@forelse($category->video\u课程作为$video\u课程)
@空的
没有视频课程

@endforelse
错误: (4/4)错误异常
SQLSTATE[42S22]:未找到列:“where子句”中的1054未知列“video\u courses.video\u category\u id”(SQL:select*from
video\u-courses
where
video\u-category\u-id
=2和
video\u-category\u-id
不为空和
video\u-courses
删除的\u-at为空)(视图:C:\xampp\htdocs\QuickLMS\resources\views\category.blade.php)

看起来您的表列与多对一关系不匹配。您的视频课程表应该有一个视频类别id列。这样,每个课程记录都会引用它所属的类别。

看起来您的表列与多对一关系不匹配。您的视频课程表应该有一个视频类别id列。这样,每个课程记录都会引用它所属的类别。

如果对
id使用不同的键,请确保在关系方法中提供,例如:

public function video_courses() {
    // second parameter is the foreign key.
    return $this->hasMany(VideoCourse::class, 'video_course_id');
}   

如果对
id
使用不同的键,请确保在关系方法中提供,例如:

public function video_courses() {
    // second parameter is the foreign key.
    return $this->hasMany(VideoCourse::class, 'video_course_id');
}   

在每个belongsTo和hasMany的第二个参数中,必须定义与这两个表相关的外键:

class VideoCourse extends Model
{

    public function video_category()
    {
       return $this->belongsTo(VideoCategory::class, 'video_category_id');
    }

}


class VideoCategory extends Model
{
    public function video_courses(){
        return $this->hasMany(VideoCourse::class,'video_category_id');
    }   
}

该错误表示您的表中没有“视频类别id”字段作为外键。请在第二个参数中传递外键列名。

在每个belongsTo和hasMany的第二个参数中,您必须定义与这两个表相关的外键:

class VideoCourse extends Model
{

    public function video_category()
    {
       return $this->belongsTo(VideoCategory::class, 'video_category_id');
    }

}


class VideoCategory extends Model
{
    public function video_courses(){
        return $this->hasMany(VideoCourse::class,'video_category_id');
    }   
}

错误表示表中没有“video_category_id”字段作为外键。请在第二个参数中传递外键列名。

VideoCategory
模型中的关系提供键

public function video_courses() {
return $this->hasMany(VideoCourse::class, 'video_course_id');
} 

VideoCategory
模型中的关系提供键

public function video_courses() {
return $this->hasMany(VideoCourse::class, 'video_course_id');
} 

@Nurdaulet Shamilov videoCourses表中的外键是什么?@Nurdaulet Shamilov videoCourses表中的外键是什么?试试它
$courses=VideoCategory::find(1)->video\u courses
。确保它返回集合。然后查找以下答案。试试它
$courses=VideoCategory::find(1)->视频课程
。并确保它返回集合。然后查找以下答案。