Laravel5.7 在使用预加载的时候,如何筛选出预加载为null的数据
问题描述:
在使用查询的时候,通过预加载去关联了一张表,然后分页查询出来,伪代码如下:
$cur_page = $params['cur_page'] ?? 1;
$page_size = $params['page_size'] ?? 20;
$offset = ($cur_page- 1) * $page_size;
$limit = $page_size;
$testQuery = TestModel::query();
$testQuery->select('id', 'name', 'pid');
$testQuery->with('getPidInfo:id,name');
$testQuery->offset($offset)->limit($limit);
$testList = $testQuery->get()->toArray();
在TestModel 声明的关联方法:
public function getPidInfo()
{
$instance = new TestPidModel();
$query = $instance->newQuery();
return new BelongsTo($query, $this, 'pid', 'pid', null);
}
然后查询出来的数据会有get_pid_info 的字段,如果在该关联表没有数据就会显示为null,那么如何在分页之前就筛选出为null或者不为null的数据。
whereHas('getPidInfo')