'e.name:json_string', 'label' => 'e.label:json_string', 'class_name' => new DoctrineInstanceOfFilterMapping ( "e", [ TrackLiteralContentQuestionTemplate::ClassName => TrackLiteralContentQuestionTemplate::class, TrackRadioButtonListQuestionTemplate::ClassName => TrackRadioButtonListQuestionTemplate::class, TrackCheckBoxListQuestionTemplate::ClassName => TrackCheckBoxListQuestionTemplate::class, TrackDropDownQuestionTemplate::ClassName => TrackDropDownQuestionTemplate::class, TrackTextBoxQuestionTemplate::ClassName => TrackTextBoxQuestionTemplate::class, TrackCheckBoxQuestionTemplate::ClassName => TrackCheckBoxQuestionTemplate::class, ] ), ]; } /** * @return array */ protected function getOrderMappings() { return [ 'name' => 'e.name', 'label' => 'e.name', 'id' => 'e.id', ]; } /** * @return string */ protected function getBaseEntity() { return TrackQuestionTemplate::class; } /** * @param string $name * @return TrackQuestionTemplate */ public function getByName($name) { return $this->getEntityManager()->createQueryBuilder() ->select("g") ->from(TrackQuestionTemplate::class, "g") ->where('LOWER(g.name) = :name') ->setParameter('name', strtolower(trim($name))) ->getQuery() ->getOneOrNullResult(); } /** * @param string $label * @return TrackQuestionTemplate */ public function getByLabel($label) { return $this->getEntityManager()->createQueryBuilder() ->select("g") ->from(TrackQuestionTemplate::class, "g") ->where('LOWER(g.label) = :label') ->setParameter('label', strtolower(trim($label))) ->getQuery() ->getOneOrNullResult(); } /** * @return array */ public function getQuestionsMetadata() { return [ TrackTextBoxQuestionTemplate::getMetadata(), TrackCheckBoxQuestionTemplate::getMetadata(), TrackLiteralContentQuestionTemplate::getMetadata(), TrackRadioButtonListQuestionTemplate::getMetadata(), TrackCheckBoxListQuestionTemplate::getMetadata(), TrackDropDownQuestionTemplate::getMetadata(), ]; } }