Esempio n. 1
0
 /**
  * Add required filters
  *
  * @param BuildAfter $event
  */
 public function onBuildAfter(BuildAfter $event)
 {
     /** @var OrmDatasource $ormDataSource */
     $ormDataSource = $event->getDatagrid()->getDatasource();
     $queryBuilder = $ormDataSource->getQueryBuilder();
     $parameters = $event->getDatagrid()->getParameters();
     $this->factory->filterQueryByUserId($queryBuilder, $parameters->get('userId'));
     if ($parameters->has('emailIds')) {
         $emailIds = $parameters->get('emailIds');
         if (!is_array($emailIds)) {
             $emailIds = explode(',', $emailIds);
         }
         $queryBuilder->andWhere($queryBuilder->expr()->in('e.id', $emailIds));
     }
 }
 /**
  * @param BuildAfter $event
  */
 public function onBuildAfter(BuildAfter $event)
 {
     $datagrid = $event->getDatagrid();
     $datasource = $datagrid->getDatasource();
     if ($datasource instanceof OrmDatasource) {
         $parameters = $datagrid->getParameters();
         $userId = $parameters->get('userId');
         $queryBuilder = $datasource->getQueryBuilder();
         $this->emailQueryFactory->filterQueryByUserId($queryBuilder, $parameters->get('userId'));
         $this->emailQueryFactory->prepareQuery($queryBuilder);
         // bind 'origin_ids' parameter
         $originIds = [];
         $emailOrigins = $this->emailGridHelper->getEmailOrigins($userId);
         foreach ($emailOrigins as $emailOrigin) {
             $originIds[] = $emailOrigin->getId();
         }
         $queryBuilder->setParameter('origin_ids', $originIds);
     }
 }