我正在尝试为我的应用构建评论系统,其中我有学生课程和课程。每门课程都有不同的课程,我希望每节课都能显示评论部分留下的不同评论。但是我只是为id = 1的课程存储评论,我不知道问题出在哪里。尝试了几种解决方案,其中一些甚至没有工作。
我在模块中设置了关系:
browser.close
对于每门课程,我都会显示相应的课程,并为每节课提供评论。
CommentsController:
class Course extends Model{
protected $fillable=['name', 'language', 'description', 'semester_id','user_id'];
public function lesson(){
return $this->hasMany(Lesson::class,'courses_id');
}
}
class Lesson extends Model
{
protected $fillable=['courses_id', 'lesson', 'description'];
public function course(){
return $this->belongsTo(Course::class);
}
public function comments(){
return $this->hasMany(Comment::class);
}
}
class Comment extends Model
{
protected $fillable=['user_id', 'comment', 'lesson_id'];
public function lesson(){
return $this->belongsTo(Lesson::class);
}
}
查看:
public function store(Request $request, $id)
{
$this->validate($request, array(
'comment' => 'required|min:5|max:3000'
));
$user_id = Auth::id();
$lesson = Lesson::find($id);
$lesson_id = $lesson->id;
Comment::create([
'user_id' => $user_id,
'comment' => $request->comment,
'lesson_id' => $lesson_id
]);
return back();
}
提前致谢:)
答案 0 :(得分:0)
在你的评论控制器中,我会打印出传入的ID是什么,或以某种方式记录它。这将确保您收到正确的课程ID,并且您提交评论的表单不仅仅是发送$ id = 1。如果看起来不错,那么我不确定您需要以下代码
$lesson = Lesson::find($id);
$lesson_id = $lesson->id;
您应该可以$lesson_id = $id;