database - Laravel - 评论系统
问题描述
我正在尝试为我的应用程序构建一个评论系统,其中有学生课程和课程。每门课程都有不同的课程,我希望每门课程都能在评论部分显示不同的评论。但是,我坚持只为 id = 1 的课程存储评论,我不知道问题出在哪里。尝试了几种解决方案,其中一些甚至不起作用。
我已经在模块中设置了关系:
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();
}
看法:
<form id="comments-form" method="POST" action="{{url('/lessons/show/'.$course_id.'/'.$lesson->id.'/comments/'.$lesson_id)}}">
{{ csrf_field() }}
<div>
<textarea rows="10" name="comment" id="comment" placeholder="Comment"></textarea>
</div>
<div>
<input type="submit" name="submit" value="Add Comment">
</div>
</form>
<div id="comments-section">
@foreach($comments as $comment)
<div class="comment">
<p><strong>Name:</strong> {{$user_name}}</p>
<p><strong>E-mail:</strong> {{$user_email}}</p>
<p><strong>Comment:</strong> {{$comment->comment}}</p>
</div>
@endforeach
</div>
提前致谢 :)
解决方案
在您的评论控制器中,我会打印出传入的 id 是什么,或者以某种方式记录它。这将确保您收到正确的课程 ID,并且您提交评论的表单不仅发送 $id=1。如果看起来不错,那么我不确定您需要以下代码
$lesson = Lesson::find($id);
$lesson_id = $lesson->id;
你应该能够做$lesson_id = $id;
推荐阅读
- python - Kivy - 为什么图像源不更新?
- ruby-on-rails - 链接到错误模型的rails中的嵌套路由
- jsonschema - 有没有办法在 json 模式中重用正则表达式模式作为 patternProperties 键和字符串类型模式?
- python - python - 使用依赖下拉列表抓取表格
- javascript - 如何在 Laravel 中使用 js
- javascript - 用鼠标拖动图像,在 p5.js mouseDragged() 函数中忽略条件
- r - 使用 predictNLS 围绕 R 中的拟合值创建置信区间?
- floating-point - 从 python 浮点类型到 IEEE 64 位浮点数组并返回到 Python 3 的最佳方法是什么?
- r-exams - R/exams -exams2blackboard 没有随机化或改组
- python - 连续计算值的频率?