Laravel 直接从模型中引用查询生成器

Laravel 直接从模型中引用查询生成器,laravel,model,eloquent,Laravel,Model,Eloquent,当我执行类似于SomeModel::with('user')的操作时,它将返回一个Query\Builder实例。如何在不需要调用with()(或类似)的情况下获取此实例 例如,我尝试了它:newsomemodel,但它显然会返回我的模型的实例,而不是查询生成器(对我来说不起作用)。SomeModel::getQuery也不起作用,因为它返回一个与我的模型不相关的Query\Builder 我需要根据一些条件进行设置。所以一开始它需要是空的,比如: $someBuilder = SomeMode

当我执行类似于
SomeModel::with('user')
的操作时,它将返回一个
Query\Builder
实例。如何在不需要调用
with()
(或类似)的情况下获取此实例

例如,我尝试了它:
newsomemodel
,但它显然会返回我的模型的实例,而不是查询生成器(对我来说不起作用)。
SomeModel::getQuery
也不起作用,因为它返回一个与我的模型不相关的
Query\Builder

我需要根据一些条件进行设置。所以一开始它需要是空的,比如:

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

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

$someResults = $someBuilder->get();

使用静态
查询
方法:

$query=User::query();

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

$results=SomeModel::query()->when(条件(),函数($query){
$query->where(…);
})->get();

这在功能上相当于命令式的
if
子句。

getQuery
方法确实返回与模型相关的生成器。