%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /var/www/html/geotechnics/api/app/Http/Controllers/Api/v1/
Upload File :
Create Path :
Current File : /var/www/html/geotechnics/api/app/Http/Controllers/Api/v1/CountriesController.php

<?php

namespace App\Http\Controllers\Api\v1;

use App\Http\Controllers\Api\ApiController;
use App\Models\Country;
use App\Transformers\CountryTransformer;
use Illuminate\Http\Request;
use Illuminate\Pagination\LengthAwarePaginator;

class CountriesController extends ApiController
{
    /**
     * @param Request $request
     * @return CountriesController
     */
    public function index(Request $request)
    {
        /** @var LengthAwarePaginator $result */
        $result = $this->filterCountries($request)
                       ->paginate($request->get('perPage'));

        return $this->withPaginated($result, new CountryTransformer());
    }

    private function filterCountries(Request $request)
    {
        $result = Country::query();

        if ($name = $request->get('name')) {
            $result = $result->where('name', 'like', "$name%");
        }

        if ($code = $request->get('code')) {
            $result = $result->where('code', 'like', "$code%");
        }

        return $result;
    }

}

Zerion Mini Shell 1.0