Php 雄辩的ORM:count()删除select(…)

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

我正在使用Laravel-4之外的雄辩ORM,我正在构建一个自定义分页器

首先,我使用Fluent查询生成器构建一个查询。我想使用
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上关于该问题的未解决问题: