*/ class FocusRepository extends CommonRepository { /** * @return array */ public function findByForm($formId) { return $this->findBy( [ 'form' => (int) $formId, ] ); } public function getEntities(array $args = []) { $alias = $this->getTableAlias(); $q = $this->_em ->createQueryBuilder() ->select($alias) ->from(Focus::class, $alias, $alias.'.id'); if (empty($args['iterator_mode']) && empty($args['iterable_mode'])) { $q->leftJoin($alias.'.category', 'c'); } $args['qb'] = $q; return parent::getEntities($args); } /** * @param \Doctrine\ORM\QueryBuilder|\Doctrine\DBAL\Query\QueryBuilder $q */ protected function addCatchAllWhereClause($q, $filter): array { return $this->addStandardCatchAllWhereClause($q, $filter, ['f.name', 'f.website']); } /** * @param \Doctrine\ORM\QueryBuilder|\Doctrine\DBAL\Query\QueryBuilder $q */ protected function addSearchCommandWhereClause($q, $filter): array { return $this->addStandardSearchCommandWhereClause($q, $filter); } /** * @return string[] */ public function getSearchCommands(): array { return $this->getStandardSearchCommands(); } /** * @return array> */ protected function getDefaultOrder(): array { return [ [$this->getTableAlias().'.name', 'ASC'], ]; } public function getTableAlias(): string { return 'f'; } /** * @return array */ public function getFocusList($currentId) { $q = $this->createQueryBuilder('f'); $q->select('partial f.{id, name, description}')->orderBy('f.name'); return $q->getQuery()->getArrayResult(); } }