File manager - Edit - /var/www/html/homologBancodetalentos/app/Http/Services/BaseService.php
Back
<?php namespace App\Http\Services; use Exception; use Illuminate\Http\Request; use Illuminate\Pagination\LengthAwarePaginator; class BaseService { protected $model; public function paginateRessource(Request $request, string $resourceClass): LengthAwarePaginator { if (! class_exists($resourceClass)) { throw new Exception(__('crud.message.class_not_found')); } $perPage = is_null($request['perPage']) ? 10 : $request['perPage']; $page = is_null($request['page']) ? 1 : $request['page']; $offset = ($page - 1) * $perPage; $query = $this->model::query(); if (method_exists($this->model, 'scopeFilter')) { $query = $this->model::filter(); } $total = $query->count(); $result = (clone $query)->offset($offset)->limit($perPage); return new LengthAwarePaginator(new $resourceClass($result->get()), $total, $perPage, $page); } public function toOptions(string $field = 'name') { return $this->model::select(['id', $field])->get(); } public function getByCustom(array $filters) { $query = $this->model::query(); $baseModel = $query->getModel(); $schema = $baseModel->getConnection()->getSchemaBuilder(); foreach ($filters as $filter) { if (! $schema->hasColumn($baseModel->getTable(), $filter['column'])) { throw new Exception(__('crud.message.property_not_found')); } $mod = $filter['mod'] ?? '='; switch ($mod) { case 'or': $query->orWhere($filter['column'], '=', $filter['value']); break; case 'in': $query->whereIn($filter['column'], $filter['value']); break; default: $query->where($filter['column'], $mod, $filter['value']); break; } } return $query->get(); } }
| ver. 1.4 |
Github
|
.
| PHP 8.3.28 | Generation time: 0.02 |
proxy
|
phpinfo
|
Settings