Laravel查询生成器问题删除空值
大家好,你们这些聪明的人,我和其他人在这里碰壁了,我正试图解决一个问题 问题是,当这个查询生成器获得所有结果时,似乎有一些返回空值,我不确定如何在对数据分页之前删除它们,如果它是一个集合,我知道该如何做,但也许你们中的一些人可以帮我 因此,目前的逻辑进入这个分页Laravel查询生成器问题删除空值,laravel,eloquent,builder,Laravel,Eloquent,Builder,大家好,你们这些聪明的人,我和其他人在这里碰壁了,我正试图解决一个问题 问题是,当这个查询生成器获得所有结果时,似乎有一些返回空值,我不确定如何在对数据分页之前删除它们,如果它是一个集合,我知道该如何做,但也许你们中的一些人可以帮我 因此,目前的逻辑进入这个分页 $return = $tld->paginate($request->get('limit'))->toArray(); $tld是雄辩的建设者 然后将其发送到创建的函数中 $return = $this->m
$return = $tld->paginate($request->get('limit'))->toArray();
$tld是雄辩的建设者
然后将其发送到创建的函数中
$return = $this->makePagination($return);
public function makePagination($object = [], $filters = []) {
return [
'data' => [
'items' => $object['data'],
'pagination' => [
'from' => $object['from'],
'to' => $object['to'],
'total' => $object['total'],
'per_page' => $object['per_page'],
'first_page' => [
'number' => 1,
'url' => $object['first_page_url']
],
'last_page' => [
'number' => $object['last_page'],
'url' => $object['last_page_url']
],
'next_page' => [
'number' => $object['current_page'] + 1,
'url' => $object['next_page_url']
],
'prev_page' => [
'number' => $object['current_page'] - 1,
'url' => $object['prev_page_url']
]
],
'params' => $filters
]
];
}
但是我得到了这样一个带有空值的响应,我想在任何分页发生之前删除它们
{
"data": {
"items": [
{
"id": 13771,
},
null,
{
"id": 4125,
},
旁注如果我运行$tld->get(),我可以看到所有结果,其中有空值,因此如果有人可以告诉我如何删除空值,这将是一个很大的帮助get()->filter();这也没有删除空值,我仍然得到这个响应
[
{
"id": 13771,
},
null,
{
"id": 789,
}
]
@Bob Hiller请在查询中使用whereNotNull删除空条目
$tld=$query->get();
$tld->filter(function ($value) { return !is_null($value); });
$return = $tld->paginate($request->get('limit'))->toArray();
我想我修了一下
$filtered = collect(array_values(array_filter($tld->get()->toArray())));
return $this->paginate($filtered, $request->get('limit') ?? 15 , $page = null, $options = []);
然后创建了一个集合分页器
public function paginate($items, $perPage = 15, $page = null, $options = [])
{
$page = $page ?: (Paginator::resolveCurrentPage() ?: 1);
$items = $items instanceof Collection ? $items : Collection::make($items);
return new LengthAwarePaginator($items->forPage($page, $perPage), $items->count(), $perPage, $page, $options);
}
谢谢您的回复我也尝试过了,但仍然得到了空值。好的,我已经更新了我的答案,如果它不起作用,请将您的表架构发送给我。调用undefined method Illumb\Database\Eloquent\Builder::filter()I thing$tld=$query->get();你不见了$tld=$query->get();