laravel 中的嵌套评论系统
nested comment system in laravel
我有一条评论 table,其中包含以下列
id,answer_id,user_id,parent_id
我正在尝试制作一个嵌套的评论系统,用户可以在其中回复父评论,也可以回复子评论。
我只想做两层(不完全嵌套)
$comments = DB::table('comments')
->join('answers', 'answers.id' , '=', 'comments.answer_id')
->join('users' , 'users.id' , '=', 'comments.user_id')
->where('answers.id', '=' , $answer_id)
->where('parent_id', '0')
->select('comments.comment as comment',
'comments.id as comment_id',
'comments.created_at as created_at',
'comments.parent_id as parent_id',
'users.first_name as first_name',
'users.last_name as last_name',
// 'answers.aanswer as answer',
'answers.id as ans_id')
->orderBy('created_at', 'desc')
->get();
这是一个查询,它正在获取每个答案的父评论
我正在尝试这样获取子评论和子评论
foreach ($comments as $comment) {
echo $comment->comment_id.$comment->comment.'<br>';
child_comment($comment->comment_id);
}
这是我在 foreach 循环中调用以附加子项和子项注释的函数,但它没有帮助
public function child_comment($pid){
$child_comments = Comment::where('id', $pid)
->where('parent_id', '!=','0')
// ->orderBy('created_at', 'desc')
->select('comment')
->get();
foreach($child_comments as $child_comment){
echo $child_comment->comment.'<br>';
}
}
有人建议再制作一个 table,其中会有儿童和子儿童的评论,但我想把所有的事情都放在一个 table 中,请有人帮忙
首先,我建议使用 Eloquent(它本身可以完成大部分工作)。
没有测试你的解决方案,我认为问题出在这一行:
child_comment($comment->parent_id);
如果我没看错,您应该将评论 ID 而不是 parent_id 传递到此函数中以获取子评论。
当您传入 parent_id 时,您的查询将始终 return 没有任何内容,因为您检查评论 parent_id 是否为 0。"first level" 评论永远不会有parent_id.
我有一条评论 table,其中包含以下列
id,answer_id,user_id,parent_id
我正在尝试制作一个嵌套的评论系统,用户可以在其中回复父评论,也可以回复子评论。
我只想做两层(不完全嵌套)
$comments = DB::table('comments')
->join('answers', 'answers.id' , '=', 'comments.answer_id')
->join('users' , 'users.id' , '=', 'comments.user_id')
->where('answers.id', '=' , $answer_id)
->where('parent_id', '0')
->select('comments.comment as comment',
'comments.id as comment_id',
'comments.created_at as created_at',
'comments.parent_id as parent_id',
'users.first_name as first_name',
'users.last_name as last_name',
// 'answers.aanswer as answer',
'answers.id as ans_id')
->orderBy('created_at', 'desc')
->get();
这是一个查询,它正在获取每个答案的父评论
我正在尝试这样获取子评论和子评论
foreach ($comments as $comment) {
echo $comment->comment_id.$comment->comment.'<br>';
child_comment($comment->comment_id);
}
这是我在 foreach 循环中调用以附加子项和子项注释的函数,但它没有帮助
public function child_comment($pid){
$child_comments = Comment::where('id', $pid)
->where('parent_id', '!=','0')
// ->orderBy('created_at', 'desc')
->select('comment')
->get();
foreach($child_comments as $child_comment){
echo $child_comment->comment.'<br>';
}
}
有人建议再制作一个 table,其中会有儿童和子儿童的评论,但我想把所有的事情都放在一个 table 中,请有人帮忙
首先,我建议使用 Eloquent(它本身可以完成大部分工作)。
没有测试你的解决方案,我认为问题出在这一行:
child_comment($comment->parent_id);
如果我没看错,您应该将评论 ID 而不是 parent_id 传递到此函数中以获取子评论。
当您传入 parent_id 时,您的查询将始终 return 没有任何内容,因为您检查评论 parent_id 是否为 0。"first level" 评论永远不会有parent_id.