Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在Laravel中分页之前获取所有结果ID_Php_Laravel_Eloquent_Pagination - Fatal编程技术网

Php 在Laravel中分页之前获取所有结果ID

Php 在Laravel中分页之前获取所有结果ID,php,laravel,eloquent,pagination,Php,Laravel,Eloquent,Pagination,这是我的密码: $prestations=Prestation::with[ “服务”=>函数$query{ $query->select['id','name']; }, “设施”=>功能$query{ $query->select['id','name']; }, 'conciergies.network'=>函数$query{ $query->select['id','name']; } ] ->其中有'service',函数$query使用$sService{ $query->where

这是我的密码:

$prestations=Prestation::with[ “服务”=>函数$query{ $query->select['id','name']; }, “设施”=>功能$query{ $query->select['id','name']; }, 'conciergies.network'=>函数$query{ $query->select['id','name']; } ] ->其中有'service',函数$query使用$sService{ $query->where'name','regexp',/$s服务/i; } ->其中有'facility',函数$query使用$sPartner{ $query->where'name','regexp',/$sPartner/i; } ->其中有'conciergies.network',函数$query使用$sSubsidiary{ $query->where'name','regexp',/$sSubsidiary/i; } ->选择权[ “排序规则”=>[ 'locale'=>'en_US', “强度”=>1 ] ] ->其中'name','regexp',/$search/i ->orderBy$orderBy$orderDirection ->分页25; 当我尝试获取所有ID时:

$arrIds=[]; foreach$prestations作为$prestation{ 数组\u push$arrIds,$prestation->\u id; } 问题是我只能得到分页中25个元素的ID。
如何获取所有结果的ID?

您可以将查询保留在$prestationsQuery变量上,然后像这样调用它两次:

$prestationsqury=Prestation::with[ '服务:id,名称', '设施:id,名称', 'conciergies.network'=>函数$query{ $query->select['id','name']; } ] ->其中有'service',函数$query使用$sService{ $query->where'name','regexp',/$s服务/i; } ->其中有'facility',函数$query使用$sPartner{ $query->where'name','regexp',/$sPartner/i; } ->其中有'conciergies.network',函数$query使用$sSubsidiary{ $query->where'name','regexp',/$sSubsidiary/i; } ->选择权[ “排序规则”=>[ 'locale'=>'en_US', “强度”=>1 ] ] ->其中'name','regexp',/$search/i ->orderBy$orderBy$orderDirection; $arrIds=$prestationsQuery->pull'u id'; $prestations=$prestationsqury->paginate25; 拔完后记得叫paginate

另一种方法是使用如下tap功能:

$arrIds=[]; $prestations=Prestation::with[ '服务:id,名称', '设施:id,名称', 'conciergies.network'=>函数$query{ $query->select['id','name']; } ] ->其中有'service',函数$query使用$sService{ $query->where'name','regexp',/$s服务/i; } ->其中有'facility',函数$query使用$sPartner{ $query->where'name','regexp',/$sPartner/i; } ->其中有'conciergies.network',函数$query使用$sSubsidiary{ $query->where'name','regexp',/$sSubsidiary/i; } ->选择权[ “排序规则”=>[ 'locale'=>'en_US', “强度”=>1 ] ] ->其中'name','regexp',/$search/i ->orderBy$orderBy$orderDirection; ->tapfunction$query use&$arrIds{ $arrIds=$query->pull''u id'; } ->分页25;