Edit File: SubcategoriesResource.php
<?php namespace App\Http\Resources; use Illuminate\Http\Resources\Json\JsonResource; use Illuminate\Support\Facades\DB; use App\Models\Setting; use App\Models\Store; class SubcategoriesResource extends JsonResource { /** * Transform the resource into an array. * * @param \Illuminate\Http\Request $request * @return array|\Illuminate\Contracts\Support\Arrayable|\JsonSerializable */ public function toArray($request) { $lat = doubleval($request['lat']) ?? doubleval(23.8859); $long = doubleval($request['long']) ?? doubleval(45.0792); $settings = Setting::all()->pluck('value', 'key'); $max_distance = (int) $settings['distance']; $stores = Store::select("stores.*" , DB::raw("6371 * acos(cos(radians(" . $lat . ")) * cos(radians(stores.lat)) * cos(radians(stores.long) - radians(" . $long . ")) + sin(radians(" . $lat . ")) * sin(radians(stores.lat))) AS distance")) // ->having("distance", '<', $max_distance) ->whereHas('user' , function($q){ $q->where('approve' , 'accept'); }) ->whereHas('categories' , function($q){ $q->where('category_id' , $this->id); }) ->limit(10) ->get(); return [ 'id' => $this->id, 'name' => $this->name ?? '', 'slug' => $this->slug ?? '', 'image' => $this->image ? $this->ImagePath : '', 'stores' => StoresResource::collection($stores), ]; } }
Back to File Manager