Spaces:
No application file
No application file
namespace MauticPlugin\MauticFocusBundle\Entity; | |
use Mautic\CoreBundle\Entity\CommonRepository; | |
/** | |
* @extends CommonRepository<Focus> | |
*/ | |
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<array<string>> | |
*/ | |
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(); | |
} | |
} | |