Dav*_*ues 32 model laravel eloquent
当我做类似的事情SomeModel::with('user')
时返回一个Query\Builder
实例.如何在不需要调用with()
(或类似)的情况下获取此实例?
例如,我尝试过:new SomeModel
但它显然会返回我的模型的实例,而不是查询构建器(不对我工作).在SomeModel::getQuery
没有工作过,因为它返回一个Query\Builder
不相关的我的模型.
我需要它来基于一些条件设置.所以最初它需要是空的,就像它:
$someBuilder = SomeModel::getQueryBuilder(); // eg.
if(condition()) {
$someBuilder->where(...);
}
$someResults = $someBuilder->get();
Run Code Online (Sandbox Code Playgroud)
Jos*_*ber 63
使用静态query
方法:
$query = User::query();
Run Code Online (Sandbox Code Playgroud)
此外,您可以使用该when
方法将这些条件直接链接到查询构建器本身:
$results = SomeModel::query()->when(condition(), function ($query) {
$query->where(...);
})->get();
Run Code Online (Sandbox Code Playgroud)
这在功能上等同于命令性if
条款.
归档时间: |
|
查看次数: |
14668 次 |
最近记录: |