em = $em; } public function search($search_term) { // query legacy job orders for plate number, name (first, middle, last), phone number(mobile, landline) $legacy_job_orders = $this->em->createQuery('SELECT l FROM App\Entity\LegacyJobOrder l WHERE l.plate_number LIKE :search_term OR l.cust_mobile LIKE :search_term OR l.cust_landline LIKE :search_term OR l.cust_name LIKE :search_term OR l.cust_last_name LIKE :search_term OR l.cust_middle_name LIKE :search_term OR l.cust_first_name LIKE :search_term OR l.cust_contact LIKE :search_term') ->setParameter('search_term', "%" . $search_term . "%") ->setMaxResults(SEARCH_MAX_RESULTS) ->getResult(); // query current job orders for plate number, name(first, last), phone number(mobile, landline, office, fax) // join with customervehicle for plate number. join with customer for name and number $job_orders = $this->em->createQuery('SELECT jo FROM App\Entity\JobOrder jo JOIN jo.cus_vehicle cv JOIN jo.customer c WHERE cv.plate_number LIKE :search_term OR c.first_name LIKE :search_term OR c.last_name LIKE :search_term OR c.phone_mobile LIKE :search_term OR c.phone_landline LIKE :search_term OR c.phone_office LIKE :search_term OR c.phone_fax LIKE :search_term') ->setParameter('search_term', "%" . $search_term . "%") ->setMaxResults(SEARCH_MAX_RESULTS) ->getResult(); // query warranty for plate number, name(first, last), phone number(mobile) $warranties = $this->em->createQuery('SELECT w FROM App\Entity\Warranty w WHERE w.plate_number LIKE :search_term OR w.first_name LIKE :search_term OR w.last_name LIKE :search_term OR w.mobile_number LIKE :search_term') ->setParameter('search_term', "%" . $search_term . "%") ->setMaxResults(SEARCH_MAX_RESULTS) ->getResult(); $results = array('legacy_job_orders'=>$legacy_job_orders, 'job_orders'=>$job_orders, 'warranties'=>$warranties); return $results; } }