У меня есть список, который извлекает все ветви, вычисляет расстояние между клиентом и филиалами, сортирует их и отображает результат с разбивкой по страницам. Все работает отлично, за исключением того, что когда я делаю пагинацию, я получаю ответ, такой как:
Это хорошо, за исключением того, что внешняя упаковка должна быть массивом. В основном я хочу массив объектов. Это мой контроллер:
class HomescreenController extends Controller
{
//Get a list of all the branches
public function branchesNearby($lat, $lng) //Request $request
{
$branches = Branch::all();
//Calculate distance between each branch and client
//Radius of earth is 6371 KM so multiply the result with radius of earth 6371*pi/180
foreach ($branches as $branch){
$branch['distance'] = sqrt(pow(($branch->lat - $lat), 2) + pow(($branch->lng - $lng), 2)) * 108;
}
//Sort by nearest first
$sortedBranches = $branches->sortBy('distance'); //->forPage(1, 2);
$paginated = $sortedBranches->paginate(2);
return BranchResource::collection($paginated);
}
Чтобы исправить это, я попытался
return BranchResource::collection($paginated)->values()->all();
Это приводит к правильному форматированию, как это:
Но это удаляет мой нумерацией страниц. Кто-нибудь, пожалуйста, помогите.
Кроме того, это мой ресурс:
public function toArray($request)
{
return [
'id' => $this->id,
'shop' => $this->shop->name,
'shop_ar' => $this->shop->name_ar,
'category' => $this->shop->category->name,
'category_ar' => $this->shop->category->name_ar,
'shop_image' => asset('api/images/' . $this->shop->image_file),
//'lat' => $this->lat,
//'lng' => $this->lng,
'shop_logo' => asset('api/images/' . $this->shop->logo_file),
'distance' => $this->distance . " KM"
];