gpt4 book ai didi

laravel - 如何在 Laravel 中构建多级嵌套评论系统?

转载 作者:行者123 更新时间:2023-12-05 07:35:59 24 4
gpt4 key购买 nike

我正在开发 Laravel 博客应用,我需要在博文下方添加多层嵌套评论,如图所示。

enter image description here

下面是评论表的数据库迁移模式

 Schema::create('comments', function (Blueprint $table) {
$table->increments('id');
$table->integer('parent_id')->unsigned();
$table->text('comment');
$table->integer('post_id')->unsigned();
$table->integer('user_id')->unsigned();
$table->timestamps();
});

下面是评论模型类:

class Comment extends Model
{
protected $table='comments';
public $primaryKey='id';
protected $fillable = [
'parent_id',
'comment',
'post_id',
'user_id'
];


public function post(){
return $this->belongsTo('App\Model\Post');
}

public function user(){
return $this->belongsTo('App\Model\User');
}

public function replies() {
return $this->hasMany('App\Model\Comment', 'parent_id');
}
}

这是 comments 表的截图:

enter image description here

我只能使用以下代码获得一级回复:

public function show($slug)
{
$post=Post::where(['slug'=>$slug])->with('user')->first();
$comments=Comment::where(['post_id'=>$post->id,'parent_id'=>0])->orderBy('created_at','asc')->with('replies')->get();
return response()->json($comments);
}

下面是上述查询的响应:

enter image description here

如您在回复中所见,我在评论 ID 7 中仅收到 2 条回复,但在数据库中,评论 ID 10 至 16 是评论回复的回复....未显示...我想获取并显示那个。

我在 StackOverflow 和 Google 上搜索了很多问题,但没有找到任何有用的资源。请帮我解决这个问题。

最佳答案

将评论模型中的关系编辑为以下以获得多级回复。对我来说这不是问题,我面临的问题是如何限制回复的级别并仍然寻找解决方案;

return $this->hasMany('App\Model\Comment', 'parent_id')->with('replies');

关于laravel - 如何在 Laravel 中构建多级嵌套评论系统?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49333393/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com