%PDF- %PDF-
Direktori : /var/www/html/shaban/duassis/api/app/Http/Controllers/Api/v1/ |
Current File : //var/www/html/shaban/duassis/api/app/Http/Controllers/Api/v1/AppFieldsController.php |
<?php namespace App\Http\Controllers\Api\v1; use App\Http\Controllers\Api\ApiController; use App\Models\App\AppField; use App\Transformers\FieldTransformer; use Illuminate\Http\Request; class AppFieldsController extends ApiController { /** * @var FieldTransformer */ private $transformer; /** * FieldsController constructor. * @param FieldTransformer $transformer */ public function __construct(FieldTransformer $transformer) { $this->transformer = $transformer; } public function index(Request $request) { $fields = AppField::query(); $latitude = $request->get('latitude'); $longitude = $request->get('longitude'); $distance = $request->get('distance'); if ($latitude && $longitude) { $fields = $fields->isWithinMaxDistance([ 'latitude' => $latitude, 'longitude' => $longitude, ], $distance); } if ($category = $request->get('category')) { $fields = $fields->whereHas('categories', function ($q) use ($category) { $q->where('category_id', $category); }); } if ($search = $request->get('search')) { $language = app()->getLocale(); $fields = $fields->where("name->$language", 'like', "%$search%"); $fields = $fields->orWhere("description->$language", 'like', "%$search%"); } $fields = $fields->paginate($request->get('perPage')); return $this->withPaginated($fields, $this->transformer); } public function show(AppField $field) { return $this->item($field, $this->transformer); } }