我在处理从 DB::select()
返回的数组时遇到问题。在我的 API 中,我大量使用 skip
和 take
处理 Collections
模型。不幸的是,DB::select 返回一个数组,这显然不适用于 skip and take。如何将数组转换为可以利用这些方法的集合?
我试过了
\Illuminate\Support\Collection::make(DB::select(...));
这并不像我预期的那样有效,因为它将整个数组包装在一个集合中,而不是单个结果。
是否可以将 DB::select
的返回值转换为可以使用 skip
和 take
方法的“正确”集合?
更新
我也试过:
$query = \Illuminate\Support\Collection::make(DB::table('survey_responses')->join('people', 'people.id',
'=', 'survey_responses.recipient_id')->select('survey_responses.id', 'survey_responses.response',
'survey_responses.score', 'people.name', 'people.email')->get());
这仍然告诉我:
FatalErrorException in QueryHelper.php line 36:
Call to a member function skip() on array
干杯
最佳答案
我会尝试:
$queryResult = DB::table('...')->get();
$collection = collect($queryResult);
如果查询结果是一个数组,则该集合将填充您的结果。请参阅集合的官方文档。 Laravel5 Collections
关于php - RESTful API - 数组到集合 Laravel 5,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29918201/