Нет, вы не можете передать 2 объекта в Resource
. Вы можете сделать это так
return [
'across_city' => ServiceProviderCollection::collection($across_city),
'near_by' => ServiceProviderCollection::collection($near_by)
];
Редактировать: После комментария
Если вы хотите отобразить информацию о разбиении на страницы, вам нужно создать отдельное действие контроллера и затем вернуть ServiceProviderCollection::collection
, тогда вы получите результат с мета-информацией о разбиении на страницы.
создать эти действия в вашем контроллере, напр. (UserController
)
public function acrossCity(){
$acrossCity = User::where('city','test')->paginate(10); //example
return ServiceProviderCollection::collection($acrossCity);
}
public function nearBy(){
$nearBy = User::where('near','1')->paginate(10); //example
return ServiceProviderCollection::collection($nearBy);
}
создать маршруты для этих
Route::get('user/acrossCity','UserController@acrossCity');
Route::get('user/nearBy','UserController@nearBy');
Проверить документ https://laravel.com/docs/5.6/eloquent-resources#pagination
Примечание: при использовании класса ресурсов, затем назвать его без Collection
. В вашем случае вы должны назвать ресурс как ServiceProviderResource
, а затем, когда вы вызываете его коллекцию, затем ServiceProviderResource::collection($object)
, но при возврате одного объекта тогда new ServiceProviderResource($object)
.