Exemple #1
0
 /**
  * @param GridQueryDesignerInterface|AbstractQueryDesigner $value
  * @param QueryConstraint|Constraint                       $constraint
  */
 public function validate($value, Constraint $constraint)
 {
     if (!$value instanceof GridQueryDesignerInterface) {
         return;
     }
     $gridPrefix = $value->getGridPrefix();
     $builder = $this->getBuilder($gridPrefix);
     $builder->setGridName($gridPrefix);
     $builder->setSource($value);
     $message = $this->translator->trans($constraint->message);
     try {
         $dataGrid = $this->gridBuilder->build($builder->getConfiguration(), new ParameterBag());
         $dataSource = $dataGrid->getDatasource();
         if ($dataSource instanceof OrmDatasource) {
             $qb = $dataSource->getQueryBuilder();
             $qb->setMaxResults(1);
         }
         $dataSource->getResults();
     } catch (DBALException $e) {
         $this->context->addViolation($this->isDebug ? $e->getMessage() : $message);
     } catch (ORMException $e) {
         $this->context->addViolation($this->isDebug ? $e->getMessage() : $message);
     } catch (InvalidConfigurationException $e) {
         $this->context->addViolation($this->isDebug ? $e->getMessage() : $message);
     }
 }