Apply where filters to pagination query
This commit is contained in:
parent
a83e3dee5b
commit
0c3da71a57
9 changed files with 188 additions and 105 deletions
|
|
@ -47,14 +47,21 @@ class BatteryController extends BaseController
|
|||
->getRepository(Battery::class)
|
||||
->createQueryBuilder('q');
|
||||
|
||||
// count total records
|
||||
$total = $qb->select('COUNT(q)')
|
||||
->getQuery()
|
||||
->getSingleScalarResult();
|
||||
|
||||
// get datatable params
|
||||
$datatable = $req->request->get('datatable');
|
||||
|
||||
// count total records
|
||||
$tquery = $qb->select('COUNT(q)')
|
||||
->join('q.manufacturer', 'mfg')
|
||||
->join('q.model', 'model')
|
||||
->join('q.size', 'size');
|
||||
|
||||
// add filters to count query
|
||||
$this->setQueryFilters($datatable, $tquery);
|
||||
|
||||
$total = $tquery->getQuery()
|
||||
->getSingleScalarResult();
|
||||
|
||||
// get current page number
|
||||
$page = $datatable['pagination']['page'] ?? 1;
|
||||
|
||||
|
|
@ -77,19 +84,8 @@ class BatteryController extends BaseController
|
|||
->addSelect('model.name as model_name')
|
||||
->addSelect('size.name as size_name');
|
||||
|
||||
// add associations
|
||||
$query->join('q.manufacturer', 'mfg')
|
||||
->join('q.model', 'model')
|
||||
->join('q.size', 'size');
|
||||
|
||||
// check if filter is present
|
||||
if (isset($datatable['query']['data-rows-search']) && !empty($datatable['query']['data-rows-search'])) {
|
||||
$query->where('mfg.name LIKE :filter')
|
||||
->orWhere('model.name LIKE :filter')
|
||||
->orWhere('size.name LIKE :filter')
|
||||
->orWhere('q.prod_code LIKE :filter')
|
||||
->setParameter('filter', '%' . $datatable['query']['data-rows-search'] . '%');
|
||||
}
|
||||
// add filters to query
|
||||
$this->setQueryFilters($datatable, $query);
|
||||
|
||||
// check if sorting is present, otherwise use default
|
||||
if (isset($datatable['sort']['field']) && !empty($datatable['sort']['field'])) {
|
||||
|
|
@ -398,4 +394,15 @@ class BatteryController extends BaseController
|
|||
$response->setStatusCode(Response::HTTP_OK);
|
||||
$response->send();
|
||||
}
|
||||
|
||||
// check if datatable filter is present and append to query
|
||||
protected function setQueryFilters($datatable, &$query) {
|
||||
if (isset($datatable['query']['data-rows-search']) && !empty($datatable['query']['data-rows-search'])) {
|
||||
$query->where('mfg.name LIKE :filter')
|
||||
->orWhere('model.name LIKE :filter')
|
||||
->orWhere('size.name LIKE :filter')
|
||||
->orWhere('q.prod_code LIKE :filter')
|
||||
->setParameter('filter', '%' . $datatable['query']['data-rows-search'] . '%');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -42,14 +42,18 @@ class BatteryManufacturerController extends BaseController
|
|||
->getRepository(BatteryManufacturer::class)
|
||||
->createQueryBuilder('q');
|
||||
|
||||
// count total records
|
||||
$total = $qb->select('COUNT(q)')
|
||||
->getQuery()
|
||||
->getSingleScalarResult();
|
||||
|
||||
// get datatable params
|
||||
$datatable = $req->request->get('datatable');
|
||||
|
||||
// count total records
|
||||
$tquery = $qb->select('COUNT(q)');
|
||||
|
||||
// add filters to count query
|
||||
$this->setQueryFilters($datatable, $tquery);
|
||||
|
||||
$total = $tquery->getQuery()
|
||||
->getSingleScalarResult();
|
||||
|
||||
// get current page number
|
||||
$page = $datatable['pagination']['page'] ?? 1;
|
||||
|
||||
|
|
@ -69,6 +73,9 @@ class BatteryManufacturerController extends BaseController
|
|||
// build query
|
||||
$query = $qb->select('q');
|
||||
|
||||
// add filters to query
|
||||
$this->setQueryFilters($datatable, $query);
|
||||
|
||||
// check if filter is present
|
||||
if (isset($datatable['query']['data-rows-search']) && !empty($datatable['query']['data-rows-search'])) {
|
||||
$query->where('q.name LIKE :filter')
|
||||
|
|
@ -256,4 +263,12 @@ class BatteryManufacturerController extends BaseController
|
|||
$response->setStatusCode(Response::HTTP_OK);
|
||||
$response->send();
|
||||
}
|
||||
|
||||
// check if datatable filter is present and append to query
|
||||
protected function setQueryFilters($datatable, &$query) {
|
||||
if (isset($datatable['query']['data-rows-search']) && !empty($datatable['query']['data-rows-search'])) {
|
||||
$query->where('q.name LIKE :filter')
|
||||
->setParameter('filter', '%' . $datatable['query']['data-rows-search'] . '%');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -42,14 +42,18 @@ class BatteryModelController extends BaseController
|
|||
->getRepository(BatteryModel::class)
|
||||
->createQueryBuilder('q');
|
||||
|
||||
// count total records
|
||||
$total = $qb->select('COUNT(q)')
|
||||
->getQuery()
|
||||
->getSingleScalarResult();
|
||||
|
||||
// get datatable params
|
||||
$datatable = $req->request->get('datatable');
|
||||
|
||||
// count total records
|
||||
$tquery = $qb->select('COUNT(q)');
|
||||
|
||||
// add filters to count query
|
||||
$this->setQueryFilters($datatable, $tquery);
|
||||
|
||||
$total = $tquery->getQuery()
|
||||
->getSingleScalarResult();
|
||||
|
||||
// get current page number
|
||||
$page = $datatable['pagination']['page'] ?? 1;
|
||||
|
||||
|
|
@ -69,11 +73,8 @@ class BatteryModelController extends BaseController
|
|||
// build query
|
||||
$query = $qb->select('q');
|
||||
|
||||
// check if filter is present
|
||||
if (isset($datatable['query']['data-rows-search']) && !empty($datatable['query']['data-rows-search'])) {
|
||||
$query->where('q.name LIKE :filter')
|
||||
->setParameter('filter', '%' . $datatable['query']['data-rows-search'] . '%');
|
||||
}
|
||||
// add filters to query
|
||||
$this->setQueryFilters($datatable, $query);
|
||||
|
||||
// check if sorting is present, otherwise use default
|
||||
if (isset($datatable['sort']['field']) && !empty($datatable['sort']['field'])) {
|
||||
|
|
@ -256,4 +257,12 @@ class BatteryModelController extends BaseController
|
|||
$response->setStatusCode(Response::HTTP_OK);
|
||||
$response->send();
|
||||
}
|
||||
|
||||
// check if datatable filter is present and append to query
|
||||
protected function setQueryFilters($datatable, &$query) {
|
||||
if (isset($datatable['query']['data-rows-search']) && !empty($datatable['query']['data-rows-search'])) {
|
||||
$query->where('q.name LIKE :filter')
|
||||
->setParameter('filter', '%' . $datatable['query']['data-rows-search'] . '%');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -42,14 +42,18 @@ class BatterySizeController extends BaseController
|
|||
->getRepository(BatterySize::class)
|
||||
->createQueryBuilder('q');
|
||||
|
||||
// count total records
|
||||
$total = $qb->select('COUNT(q)')
|
||||
->getQuery()
|
||||
->getSingleScalarResult();
|
||||
|
||||
// get datatable params
|
||||
$datatable = $req->request->get('datatable');
|
||||
|
||||
// count total records
|
||||
$tquery = $qb->select('COUNT(q)');
|
||||
|
||||
// add filters to count query
|
||||
$this->setQueryFilters($datatable, $tquery);
|
||||
|
||||
$total = $tquery->getQuery()
|
||||
->getSingleScalarResult();
|
||||
|
||||
// get current page number
|
||||
$page = $datatable['pagination']['page'] ?? 1;
|
||||
|
||||
|
|
@ -69,11 +73,8 @@ class BatterySizeController extends BaseController
|
|||
// build query
|
||||
$query = $qb->select('q');
|
||||
|
||||
// check if filter is present
|
||||
if (isset($datatable['query']['data-rows-search']) && !empty($datatable['query']['data-rows-search'])) {
|
||||
$query->where('q.name LIKE :filter')
|
||||
->setParameter('filter', '%' . $datatable['query']['data-rows-search'] . '%');
|
||||
}
|
||||
// add filters to query
|
||||
$this->setQueryFilters($datatable, $query);
|
||||
|
||||
// check if sorting is present, otherwise use default
|
||||
if (isset($datatable['sort']['field']) && !empty($datatable['sort']['field'])) {
|
||||
|
|
@ -256,4 +257,12 @@ class BatterySizeController extends BaseController
|
|||
$response->setStatusCode(Response::HTTP_OK);
|
||||
$response->send();
|
||||
}
|
||||
|
||||
// check if datatable filter is present and append to query
|
||||
protected function setQueryFilters($datatable, &$query) {
|
||||
if (isset($datatable['query']['data-rows-search']) && !empty($datatable['query']['data-rows-search'])) {
|
||||
$query->where('q.name LIKE :filter')
|
||||
->setParameter('filter', '%' . $datatable['query']['data-rows-search'] . '%');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -45,14 +45,18 @@ class CustomerController extends BaseController
|
|||
->getRepository(Customer::class)
|
||||
->createQueryBuilder('q');
|
||||
|
||||
// count total records
|
||||
$total = $qb->select('COUNT(q)')
|
||||
->getQuery()
|
||||
->getSingleScalarResult();
|
||||
|
||||
// get datatable params
|
||||
$datatable = $req->request->get('datatable');
|
||||
|
||||
// count total records
|
||||
$tquery = $qb->select('COUNT(q)');
|
||||
|
||||
// add filters to count query
|
||||
$this->setQueryFilters($datatable, $tquery);
|
||||
|
||||
$total = $tquery->getQuery()
|
||||
->getSingleScalarResult();
|
||||
|
||||
// get current page number
|
||||
$page = $datatable['pagination']['page'] ?? 1;
|
||||
|
||||
|
|
@ -72,12 +76,8 @@ class CustomerController extends BaseController
|
|||
// build query
|
||||
$query = $qb->select('q');
|
||||
|
||||
// check if filter is present
|
||||
if (isset($datatable['query']['data-rows-search']) && !empty($datatable['query']['data-rows-search'])) {
|
||||
$query->where('q.first_name LIKE :filter')
|
||||
->orWhere('q.last_name LIKE :filter')
|
||||
->setParameter('filter', '%' . $datatable['query']['data-rows-search'] . '%');
|
||||
}
|
||||
// add filters to query
|
||||
$this->setQueryFilters($datatable, $query);
|
||||
|
||||
// check if sorting is present, otherwise use default
|
||||
if (isset($datatable['sort']['field']) && !empty($datatable['sort']['field'])) {
|
||||
|
|
@ -266,4 +266,13 @@ class CustomerController extends BaseController
|
|||
$response->setStatusCode(Response::HTTP_OK);
|
||||
$response->send();
|
||||
}
|
||||
|
||||
// check if datatable filter is present and append to query
|
||||
protected function setQueryFilters($datatable, &$query) {
|
||||
if (isset($datatable['query']['data-rows-search']) && !empty($datatable['query']['data-rows-search'])) {
|
||||
$query->where('q.first_name LIKE :filter')
|
||||
->orWhere('q.last_name LIKE :filter')
|
||||
->setParameter('filter', '%' . $datatable['query']['data-rows-search'] . '%');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -42,14 +42,18 @@ class RoleController extends BaseController
|
|||
->getRepository(Role::class)
|
||||
->createQueryBuilder('q');
|
||||
|
||||
// count total records
|
||||
$total = $qb->select('COUNT(q)')
|
||||
->getQuery()
|
||||
->getSingleScalarResult();
|
||||
|
||||
// get datatable params
|
||||
$datatable = $req->request->get('datatable');
|
||||
|
||||
// count total records
|
||||
$tquery = $qb->select('COUNT(q)');
|
||||
|
||||
// add filters to count query
|
||||
$this->setQueryFilters($datatable, $tquery);
|
||||
|
||||
$total = $tquery->getQuery()
|
||||
->getSingleScalarResult();
|
||||
|
||||
// get current page number
|
||||
$page = $datatable['pagination']['page'] ?? 1;
|
||||
|
||||
|
|
@ -69,12 +73,8 @@ class RoleController extends BaseController
|
|||
// build query
|
||||
$query = $qb->select('q');
|
||||
|
||||
// check if filter is present
|
||||
if (isset($datatable['query']['data-rows-search']) && !empty($datatable['query']['data-rows-search'])) {
|
||||
$query->where('q.id LIKE :filter')
|
||||
->orWhere('q.name LIKE :filter')
|
||||
->setParameter('filter', '%' . $datatable['query']['data-rows-search'] . '%');
|
||||
}
|
||||
// add filters to query
|
||||
$this->setQueryFilters($datatable, $query);
|
||||
|
||||
// check if sorting is present, otherwise use default
|
||||
if (isset($datatable['sort']['field']) && !empty($datatable['sort']['field'])) {
|
||||
|
|
@ -305,4 +305,13 @@ class RoleController extends BaseController
|
|||
$response->setStatusCode(Response::HTTP_OK);
|
||||
$response->send();
|
||||
}
|
||||
|
||||
// check if datatable filter is present and append to query
|
||||
protected function setQueryFilters($datatable, &$query) {
|
||||
if (isset($datatable['query']['data-rows-search']) && !empty($datatable['query']['data-rows-search'])) {
|
||||
$query->where('q.id LIKE :filter')
|
||||
->orWhere('q.name LIKE :filter')
|
||||
->setParameter('filter', '%' . $datatable['query']['data-rows-search'] . '%');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -32,14 +32,18 @@ class UserController extends BaseController
|
|||
->getRepository(User::class)
|
||||
->createQueryBuilder('q');
|
||||
|
||||
// count total records
|
||||
$total = $qb->select('COUNT(q)')
|
||||
->getQuery()
|
||||
->getSingleScalarResult();
|
||||
|
||||
// get datatable params
|
||||
$datatable = $req->request->get('datatable');
|
||||
|
||||
// count total records
|
||||
$tquery = $qb->select('COUNT(q)');
|
||||
|
||||
// add filters to count query
|
||||
$this->setQueryFilters($datatable, $tquery);
|
||||
|
||||
$total = $tquery->getQuery()
|
||||
->getSingleScalarResult();
|
||||
|
||||
// get current page number
|
||||
$page = $datatable['pagination']['page'] ?? 1;
|
||||
|
||||
|
|
@ -59,15 +63,8 @@ class UserController extends BaseController
|
|||
// build query
|
||||
$query = $qb->select('q');
|
||||
|
||||
// check if filter is present
|
||||
if (isset($datatable['query']['data-rows-search']) && !empty($datatable['query']['data-rows-search'])) {
|
||||
$query->where('q.username LIKE :filter')
|
||||
->orWhere('q.first_name LIKE :filter')
|
||||
->orWhere('q.last_name LIKE :filter')
|
||||
->orWhere('q.email LIKE :filter')
|
||||
->orWhere('q.contact_num LIKE :filter')
|
||||
->setParameter('filter', '%' . $datatable['query']['data-rows-search'] . '%');
|
||||
}
|
||||
// add filters to query
|
||||
$this->setQueryFilters($datatable, $query);
|
||||
|
||||
// check if sorting is present, otherwise use default
|
||||
if (isset($datatable['sort']['field']) && !empty($datatable['sort']['field'])) {
|
||||
|
|
@ -351,4 +348,16 @@ class UserController extends BaseController
|
|||
$response->setStatusCode(Response::HTTP_OK);
|
||||
$response->send();
|
||||
}
|
||||
|
||||
// check if datatable filter is present and append to query
|
||||
protected function setQueryFilters($datatable, &$query) {
|
||||
if (isset($datatable['query']['data-rows-search']) && !empty($datatable['query']['data-rows-search'])) {
|
||||
$query->where('q.username LIKE :filter')
|
||||
->orWhere('q.first_name LIKE :filter')
|
||||
->orWhere('q.last_name LIKE :filter')
|
||||
->orWhere('q.email LIKE :filter')
|
||||
->orWhere('q.contact_num LIKE :filter')
|
||||
->setParameter('filter', '%' . $datatable['query']['data-rows-search'] . '%');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -32,14 +32,19 @@ class VehicleController extends BaseController
|
|||
->getRepository(Vehicle::class)
|
||||
->createQueryBuilder('q');
|
||||
|
||||
// count total records
|
||||
$total = $qb->select('COUNT(q)')
|
||||
->getQuery()
|
||||
->getSingleScalarResult();
|
||||
|
||||
// get datatable params
|
||||
$datatable = $req->request->get('datatable');
|
||||
|
||||
// count total records
|
||||
$tquery = $qb->select('COUNT(q)')
|
||||
->join('q.manufacturer', 'mfg');
|
||||
|
||||
// add filters to count query
|
||||
$this->setQueryFilters($datatable, $tquery);
|
||||
|
||||
$total = $tquery->getQuery()
|
||||
->getSingleScalarResult();
|
||||
|
||||
// get current page number
|
||||
$page = $datatable['pagination']['page'] ?? 1;
|
||||
|
||||
|
|
@ -60,17 +65,8 @@ class VehicleController extends BaseController
|
|||
$query = $qb->select('q')
|
||||
->addSelect('mfg.name as mfg_name');
|
||||
|
||||
// add associations
|
||||
$query->join('q.manufacturer', 'mfg');
|
||||
|
||||
// check if filter is present
|
||||
if (isset($datatable['query']['data-rows-search']) && !empty($datatable['query']['data-rows-search'])) {
|
||||
$query->where('mfg.name LIKE :filter')
|
||||
->orWhere('q.make LIKE :filter')
|
||||
->orWhere('q.model_year_from LIKE :filter')
|
||||
->orWhere('q.model_year_to LIKE :filter')
|
||||
->setParameter('filter', '%' . $datatable['query']['data-rows-search'] . '%');
|
||||
}
|
||||
// add filters to query
|
||||
$this->setQueryFilters($datatable, $query);
|
||||
|
||||
// check if sorting is present, otherwise use default
|
||||
if (isset($datatable['sort']['field']) && !empty($datatable['sort']['field'])) {
|
||||
|
|
@ -299,4 +295,15 @@ class VehicleController extends BaseController
|
|||
$start_year = 1950;
|
||||
return range($start_year, date("Y"));
|
||||
}
|
||||
|
||||
// check if datatable filter is present and append to query
|
||||
protected function setQueryFilters($datatable, &$query) {
|
||||
if (isset($datatable['query']['data-rows-search']) && !empty($datatable['query']['data-rows-search'])) {
|
||||
$query->where('mfg.name LIKE :filter')
|
||||
->orWhere('q.make LIKE :filter')
|
||||
->orWhere('q.model_year_from LIKE :filter')
|
||||
->orWhere('q.model_year_to LIKE :filter')
|
||||
->setParameter('filter', '%' . $datatable['query']['data-rows-search'] . '%');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -42,14 +42,18 @@ class VehicleManufacturerController extends BaseController
|
|||
->getRepository(VehicleManufacturer::class)
|
||||
->createQueryBuilder('q');
|
||||
|
||||
// count total records
|
||||
$total = $qb->select('COUNT(q)')
|
||||
->getQuery()
|
||||
->getSingleScalarResult();
|
||||
|
||||
// get datatable params
|
||||
$datatable = $req->request->get('datatable');
|
||||
|
||||
// count total records
|
||||
$tquery = $qb->select('COUNT(q)');
|
||||
|
||||
// add filters to count query
|
||||
$this->setQueryFilters($datatable, $tquery);
|
||||
|
||||
$total = $tquery->getQuery()
|
||||
->getSingleScalarResult();
|
||||
|
||||
// get current page number
|
||||
$page = $datatable['pagination']['page'] ?? 1;
|
||||
|
||||
|
|
@ -69,11 +73,8 @@ class VehicleManufacturerController extends BaseController
|
|||
// build query
|
||||
$query = $qb->select('q');
|
||||
|
||||
// check if filter is present
|
||||
if (isset($datatable['query']['data-rows-search']) && !empty($datatable['query']['data-rows-search'])) {
|
||||
$query->where('q.name LIKE :filter')
|
||||
->setParameter('filter', '%' . $datatable['query']['data-rows-search'] . '%');
|
||||
}
|
||||
// add filters to query
|
||||
$this->setQueryFilters($datatable, $query);
|
||||
|
||||
// check if sorting is present, otherwise use default
|
||||
if (isset($datatable['sort']['field']) && !empty($datatable['sort']['field'])) {
|
||||
|
|
@ -289,4 +290,12 @@ class VehicleManufacturerController extends BaseController
|
|||
'data' => $vehicles
|
||||
]);
|
||||
}
|
||||
|
||||
// check if datatable filter is present and append to query
|
||||
protected function setQueryFilters($datatable, &$query) {
|
||||
if (isset($datatable['query']['data-rows-search']) && !empty($datatable['query']['data-rows-search'])) {
|
||||
$query->where('q.name LIKE :filter')
|
||||
->setParameter('filter', '%' . $datatable['query']['data-rows-search'] . '%');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue