gpt4 book ai didi

laravel - 直接从模型实例化查询构建器

转载 作者:行者123 更新时间:2023-12-03 08:46:26 24 4
gpt4 key购买 nike

当我做类似 SomeModel::with('user') 的事情时它返回一个 Query\Builder实例。如何在无需调用 with() 的情况下获得此实例(或类似)?

比如我试了一下:new SomeModel ,但它显然会返回我的模型的实例,而不是查询构建器(对我不起作用)。 SomeModel::getQuery也不起作用,因为它返回 Query\Builder与我的模型无关。

我需要它根据一些条件进行设置。所以最初它需要是空的,就像这样:

$someBuilder = SomeModel::getQueryBuilder(); // eg.

if(condition()) {
$someBuilder->where(...);
}

$someResults = $someBuilder->get();

最佳答案

使用静态 query方法:

$query = User::query();

此外,您可以使用 when将这些条件直接链接到查询构建器本身的方法:

$results = SomeModel::query()->when(condition(), function ($query) {
$query->where(...);
})->get();

这在功能上等同于命令式 if条款。

关于laravel - 直接从模型实例化查询构建器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33908625/

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