一对多关系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
wherevideo\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)->视频课程
。并确保它返回集合。然后查找以下答案。