<?php namespace App\Repository; use Doctrine\ORM\EntityRepository; use Doctrine\ORM\Query; use Doctrine\ORM\Query\Expr\Join; use App\Entity\ActorEntity; use App\Enum\StatusEnum; /** * Repository for workspaces */ class ActivityRepository extends EntityRepository { /** * Find active activities of followed actors * * @return array */ public function findActiveFollowed(): array { $query = $this->createQueryBuilder('activity'); $query->join(ActorEntity::class, 'actor', Join::WITH, 'activity.actor = actor'); $query->andWhere($query->expr() ->eq('actor.followed', true)); $query->andWhere($query->expr()->in('activity.status', StatusEnum::ACTIVE_STATUS)); return $query->getQuery()->execute([], Query::HYDRATE_OBJECT); } }