当前位置: 首页 > 知识库问答 >
问题:

php - laravel框架查询回复,并且查询每个回复下面5条二级回复怎么写?

皇甫飞光
2023-04-27

如题,这个咋写啊,愁死了

共有1个答案

扈德容
2023-04-27

你可以用 Eloquent ORM 来进行数据库查询。假设现在有两个模型,Comment 和 Reply,并且它们之间是有一对多关系。
Comment 模型:


// app/Models/Comment.php
namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class Comment extends Model
{
    public function replies()
    {
        return $this->hasMany(Reply::class);
    }
}

Reply 模型:

// app/Models/Reply.php
namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class Reply extends Model
{
    public function comment()
    {
        return $this->belongsTo(Comment::class);
    }
}

现在,你就可以用 Eloquent ORM 方法在查询时用关联来检索评论和前 5 条回复。再用 with() 方法查询:

use App\Models\Comment;

// ...

$commentsWithReplies = Comment::with([
    'replies' => function ($query) {
        $query->latest()->limit(5);
    }
])->get();

最后,在 config/app.php 文件中注册模型:


'aliases' => [
    // ...
    'Comment' => App\Models\Comment::class,
    'Reply' => App\Models\Reply::class,
],

这样就好了

 类似资料:
  • 这边用laravel做的移动端接口,有个业务需求: 加载文章列表,首页显示10条数据,上划再加载时,每次加载5条数据, 如何实现? 一个接口能否实现? 有没有必要分两个接口, 一个专用来查10条,另一个对排除这10条数据的其它数据进行每页5条数据的分页

  • 问题内容: 我有一个表,例如,具有ID,State和User_ID的Instrument作为列。 因此,我有这个JPA查询来返回具有匹配的User_ID的所有仪器记录。 它仅返回第一个记录,重复的次数与匹配记录的次数相同。 我在Db中有3条记录,仪器ID为1,2和3 我在hibernate状态下启用了show sql查询,该查询直接在数据库上运行良好,并返回了不同的记录。 hibernate查询:

  • 问题内容: 我有一个mysql查询,显示用户上次查看的文档。某种历史记录视图,我想在“历史记录”选项卡中显示它,但是我无法使其正常工作。 历史记录保存在另一台服务器上,因此我要获取ID列表,并且必须从文档数据库中获取文档信息。我希望它在历史记录中显示重复的条目(当前不起作用) 我已经尝试了多种方法来使其正常工作,而我所得到的只是获得最近的25个文档,这些文档是在id字段上使用DISTINCT选择的

  • 调试栏读取 事实证明,每次检查我的用户,通过

  • 我有一个表,比如说,仪表,ID、State和User_ID作为列。 所以我有这个JPA查询来返回所有带有匹配User_ID的仪器记录。 它只返回第一条记录,重复次数与有匹配记录的次数一样多。 我有三张Db格式的唱片,仪器编号是1、2和3 我在hibernate上启用了ShowSQL查询,查询直接在数据库上运行良好,并返回不同的记录。 Hibernate查询: 工具实体 不知道我错过了什么。

  • 问题内容: 桌子: 我的查询: 我收到“ MySQL子查询返回多个行”错误。 我知道此查询可以使用以下查询的解决方法: 然后使用php循环遍历结果并执行以下查询以获取和回显它: 但是我认为可能会有更好的解决方案? 问题答案: 简单的解决方法是在子查询中添加一个子句: 一个更好的选择(就性能而言)是使用联接: