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 次 |
| 最近记录: |