'e.name:json_string', 'active' => 'e.active:json_boolean', 'resource_server_id' => new DoctrineLeftJoinFilterMapping("e.resource_server", "r" ,"r.id :operator :value") ]; } /** * @return array */ protected function getOrderMappings() { return []; } /** * @return string */ protected function getBaseEntity() { return Api::class; } /** * @param string $api_name * @return Api */ public function getByName(string $api_name):?Api { return $this->getEntityManager() ->createQueryBuilder() ->select("a") ->from($this->getBaseEntity(), "a") ->where("a.name in (:name)") ->setParameter("name", trim($api_name)) ->setMaxResults(1) ->getQuery() ->getOneOrNullResult(); } /** * @param string $api_name * @param int $resource_server_id * @return Api */ public function getByNameAndResourceServer(string $api_name, int $resource_server_id):?Api { return $this->getEntityManager() ->createQueryBuilder() ->select("a") ->from($this->getBaseEntity(), "a") ->innerJoin("a.resource_server", "r") ->where("a.name in (:name)") ->andWhere("r.id = (:resource_server_id)") ->setParameter("name", trim($api_name)) ->setParameter("resource_server_id", $resource_server_id) ->setMaxResults(1) ->getQuery() ->getOneOrNullResult(); } }