Php 雄辩的ORM:count()删除select(…)
我正在使用Laravel-4之外的雄辩ORM,我正在构建一个自定义分页器 首先,我使用Fluent查询生成器构建一个查询。我想使用Php 雄辩的ORM:count()删除select(…),php,laravel-4,eloquent,Php,Laravel 4,Eloquent,我正在使用Laravel-4之外的雄辩ORM,我正在构建一个自定义分页器 首先,我使用Fluent查询生成器构建一个查询。我想使用count()获取查询可以返回的结果数,然后使用take(x)和skip(y)进行自定义分页。在执行take()->skip()->get()之前,我需要先执行count(),这样我就不会超出页面范围。问题是,当我对查询使用count()方法时,它似乎删除了我之前添加的任何select 我将问题隔离到这个简单的示例: $query = DB::table('compa
count()
获取查询可以返回的结果数,然后使用take(x)
和skip(y)
进行自定义分页。在执行take()->skip()->get()
之前,我需要先执行count()
,这样我就不会超出页面范围。问题是,当我对查询使用count()
方法时,它似乎删除了我之前添加的任何select
我将问题隔离到这个简单的示例:
$query = DB::table('companies')
->join('countries','companies.country_id','=','countries.id')
->select(
'companies.name as company_name',
'countries.name as country_name'
);
$nbPages = $query->count();
$results = $query->get();
//$results contains all fields of both tables 'companies' and 'countries'
如果我反转计数顺序并获取,它可以正常工作:
$results = $query->get();
$nbPages = $query->count();
//$results contains only 'company_name' and 'country_name'
问题:有没有一种更优雅的方式来使用这样的东西:
$tmp = clone $query;
$nbPages = $tmp->count();
$results = $query->get();
不幸的是,没有。github上关于该问题的未解决问题: