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

时间:2015-11-25 04:45:31

标签: laravel model eloquent

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

例如,我尝试了它:SomeModel::getQuery,但它显然会返回我的模型的实例,而不是查询构建器(不适用于我)。 Query\Builder也不起作用,因为它会返回与我的模型无关的$someBuilder = SomeModel::getQueryBuilder(); // eg. if(condition()) { $someBuilder->where(...); } $someResults = $someBuilder->get();

我需要它根据一些条件设置。所以最初它需要为空,就像它一样:

update MettingRegister
    set sMeetingTime = '0' + MeetingTime
    where MeetingTime like '_:%';

1 个答案:

答案 0 :(得分:51)

使用静态query方法:

$query = User::query();

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

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

这在功能上等同于命令式if子句。