gpt4 book ai didi

laravel - 如何在 Laravel 中通过自定义查询构建器使用预加载

转载 作者:行者123 更新时间:2023-12-02 01:13:35 24 4
gpt4 key购买 nike

我是 Laravel 5.4 的新手,正在处理一些查询操作。现在我已经使用查询构建器创建了一个查询,如下所示:

$view = DB::table('blocks')
->leftjoin('programmes', 'blocks.programme_id', '=', 'programmes.id')
->select('blocks.id', 'blocks.programme_id', 'blocks.name', 'blocks.colour', 'blocks.year', 'programmes.title AS programme');

我还有两个表“日期”和“模块”。每个日期和模块都属于 block 。

现在我想获取所有包含程序、日期和模块的 block 。我知道我可以使用 with() 方法来获取所有这些。但是根据我对 Laravel 的了解,只有当我拥有每个表的模型文件并且它们之间存在关系时,我才能使用 with() 方法。

但不想使用模型和定义它们之间的关系。我只想知道如何在不创建模型并在模型中定义它们之间关系的情况下获取包含程序、日期和模块的 block 数据?有没有其他方法可以在没有模型的情况下使用 with() 方法?

block 日期和模块是有条件的,有时我不想用 block 获取这个表的数据。

请帮我解决这个问题。

最佳答案

你不能自动完成。预加载仅适用于 Eloquent 模型,因此您不能将其与查询构建器一起使用。然而,在大多数情况下,您也可以使用 Eloquent 来获得更复杂的查询(您也可以在使用 Eloquent 时使用连接),因此您将能够使用预加载。

但是如果你根本不想使用 Eloquent,显然你需要创建一些自定义机制来进行预先加载。

关于laravel - 如何在 Laravel 中通过自定义查询构建器使用预加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43740747/

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