Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- use Illuminate\Support\Arr;
- public function index(Request $request): array
- {
- $parameters = json_decode($request->get('lazyEvent'), true);
- $perPage = Arr::get($parameters, 'rows', 10)
- $offset = Arr::get($parameters, 'page', 0) * $perPage;
- $query = DB::query()
- ->select('companies.id', 'name', 'email', 'phone', DB::raw("COUNT('company_contact.id') AS contact_count"))
- ->from('companies')
- ->leftJoin('company_contact', 'company_contact.company_id', '=', 'companies.id')
- ->when(Arr::has($parameters, 'filters.name'),
- fn($q) => $q->where('name', 'like', '%'.Arr::get($parameters, 'filters.name.value').'%'))
- ->groupBy('companies.id')
- ->orderBy('name')
- ->offset($offset)
- ->limit($perPage);
- return ['companies' => $query->get(), 'totalRecords' => $query->count()];
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement