/** * Takes a built query with bind variables and an array of variables * with bind identities and binds all values. * * @param 2D Array $bindValues * @param QueryBuilder $query * @return BoundQueryBuilder */ public function bindValuesToQuery($bindValues, $query) { foreach ($bindValues as $bind) { $values = $bind; // Check value is string not time/date object if (is_string($values[1])) { // Check for multiple comma seperated values if (strpos($values[1], ',')) { $exValues = explode(',', $values[1]); $query->setParameter($values[0], $exValues); } else { // echo "Binding at: ".$values[0]. " With: ".$values[1]. "\n\n"; $query->setParameter($values[0], $values[1]); } //If value was object bind it as is } else { $query->setParameter($values[0], $values[1]); } } return $query; }
/** * Build Criteria set. * * @param QueryBuilder $qb * @param string $parameter * @param string $value * * @throws Exception */ private function buildCriteriaSet($qb, $parameter, $value) { switch ($parameter) { case 'name': $qb->orWhere($qb->expr()->like('up.name', $qb->expr()->literal($value . '%'))); break; case 'email': $qb->orWhere($qb->expr()->eq('up.email', ':email')); $qb->setParameter('email', $value); break; case 'sysId': $qb->orWhere($qb->expr()->eq('uw.systemId', ':sysId')); $qb->setParameter('sysId', $value); break; case 'team': $qb->orWhere($qb->expr()->eq('t.tname', ':tname')); $qb->setParameter('tname', $value); break; default: throw new Exception("Paramenter {$parameter} not expected"); } }