/** * @param Name $name * @param Kind $kind * @return ArrayCollection */ public function partiesLikeNameAndKind(Name $name, Kind $kind) { $qb = $this->em->createQueryBuilder(); $query = $qb->select('p')->from($this->partyClass, 'p')->join('p.kind', 'k')->where($qb->expr()->eq('k.id', '?1'), $qb->expr()->like('p.lastName', '?2'))->setParameter(1, $kind->id())->setParameter(2, '%' . $name->toString() . '%'); $parties = $query->getQuery()->getResult(); return $parties; }
/** * Get all groups of a kind * * @param Kind $kind * @param integer|null $orgId * @return mixed */ public function groupsOfKind(Kind $kind, $orgId = null) { if ($orgId) { $sql = <<<EOT SELECT p.id AS id, p.lastName, g.description, g.avatar FROM groups g INNER JOIN parties p ON g.id = p.id INNER JOIN p2p_relations rel ON p.id = rel.context WHERE p.kind_id = ? AND rel.reference =? ORDER BY p.id EOT; } else { $sql = <<<EOT SELECT p.id AS id, p.firstName, p.lastName, g.description, g.avatar FROM groups g INNER JOIN parties p ON g.id = p.id WHERE p.kind_id = ? ORDER BY p.id EOT; } $rsm = new ResultSetMappingBuilder($this->em); $rsm->addEntityResult('Bakgat\\Notos\\Domain\\Model\\Identity\\Party', 'p'); $rsm->addEntityResult('Bakgat\\Notos\\Domain\\Model\\Identity\\Group', 'g'); $rsm->addFieldResult('p', 'id', 'id'); $rsm->addFieldResult('p', 'lastName', 'lastName'); $rsm->addFieldResult('g', 'description', 'description'); $qb = $this->em->createNativeQuery($sql, $rsm)->setParameter(1, $kind->id()); if ($orgId) { $qb->setParameter(2, $orgId); } $groups = $qb->getScalarResult(); return $groups; }
/** * {@inheritDoc} */ public function parent() { $this->__initializer__ && $this->__initializer__->__invoke($this, 'parent', array()); return parent::parent(); }