Laravel,获得类似 Eloquent 使用查询生成器的结果

Posted

技术标签:

【中文标题】Laravel,获得类似 Eloquent 使用查询生成器的结果【英文标题】:Laravel, get result like in Eloquent use Query Builder 【发布时间】:2020-12-25 06:54:04 【问题描述】:

我需要一点帮助。

我有两张表,其中一张可能是关系。

表 1 和表 2。

当我使用 Eloquent 模型获取数据时,我得到如下结果:

Table1Model::with('table2Result')->get()->toArray();

输出

[
    [
        'id',
        'name',
        'table2Result' => [
            [
                'id',
                'name',
                'content'
            ],
            [
                'id',
                'name',
                'content'
            ],
            ...
        ],
        ....
    ]
]

如何使用查询生成器获得相同的结果?

提前感谢您的回复=)

【问题讨论】:

【参考方案1】:

你可以这样做:

DB::table('Table1Model')
        ->join('Table2Result', function ($join) 
            $join->on('Table1Model.K', '=', 'Table2Result.FK')->orOn(...);
        )
        ->get();

祝你好运

【讨论】:

是的,我试过了。但我有未分组的结果 你能告诉我更多请告诉我为什么在哪个上下文中需要构建器,然后我可以告诉你该怎么做。 我想得到与使用模型后相同的结果。这样 table2Result 字段就包含了表 2 中表 1 中对应记录的所有关系 Eloquent 模型工作对我来说很慢,所以我赢了使用查询生成器来获得最佳性能 i.imgur.com/S5SgJdG.png 在左侧,我有模型的结果。在右侧,当我使用联接时,我得到了来自查询生成器的结果。我想像左一样将右部分分组

以上是关于Laravel,获得类似 Eloquent 使用查询生成器的结果的主要内容,如果未能解决你的问题,请参考以下文章

laravel 的 Eloquent ORM 查询前50条数据 怎么查

PHP笔记-laravel框架中Eloquent ORM实现增删改查

如何在你已经获得的东西上使用 Laravel Eloquent ::with()?

Laravel - Eloquent - 获得没有外键的关系

Laravel Eloquent 如何根据计数获得关系总和

Laravel Eloquent - 如何获得嵌套关系