/** * @param ProxyQueryInterface $queryBuilder * @param string $alias * @param string $field * @param string $data * * @return */ public function filter(ProxyQueryInterface $queryBuilder, $name, $field, $data) { if (!$data || !is_array($data) || !array_key_exists('value', $data)) { return; } $data['value'] = trim($data['value']); if (strlen($data['value']) == 0) { return; } $data['type'] = isset($data['type']) && !empty($data['type']) ? $data['type'] : ChoiceType::TYPE_CONTAINS; $obj = $queryBuilder; if ($this->condition == self::CONDITION_OR) { $obj = $queryBuilder->expr(); } if ($data['type'] == ChoiceType::TYPE_EQUAL) { $obj->field($field)->equals($data['value']); } elseif ($data['type'] == ChoiceType::TYPE_CONTAINS) { $obj->field($field)->equals(new \MongoRegex(sprintf('/%s/i', $data['value']))); } elseif ($data['type'] == ChoiceType::TYPE_NOT_CONTAINS) { $obj->field($field)->not(new \MongoRegex(sprintf('/%s/i', $data['value']))); } if ($this->condition == self::CONDITION_OR) { $queryBuilder->addOr($obj); } $this->active = true; }
public function configureQuery(AdminInterface $admin, ProxyQueryInterface $query, $content = 'list') { if ($admin instanceof ContactAdmin) { $query->andWhere($query->expr()->eq('o.organization', ':org_id'))->andWhere(':school_id MEMBER OF o.schools')->setParameter(':org_id', $this->session->get($this->orgSessionKey))->setParameter(':school_id', $this->session->get($this->schoolSessionKey)); } else { $query->innerJoin('o.contact', 'c', 'WITH', 'c.organization = :org_id AND :school_id MEMBER OF c.schools')->setParameter(':org_id', $this->session->get($this->orgSessionKey))->setParameter(':school_id', $this->session->get($this->schoolSessionKey)); } }
public function preBatchAction($actionName, ProxyQueryInterface $query, array &$idx, $allElements) { if ($actionName == 'delete') { $query->andWhere($query->expr()->in('o.id', '?1'))->setParameter(1, $idx); $serviceGroups = $query->execute(); foreach ($serviceGroups as $serviceGroup) { $this->preRemove($serviceGroup); } } }
public function configureQuery(AdminInterface $admin, ProxyQueryInterface $query, $content = 'list') { $query->andWhere($query->expr()->eq('o.organization', ':org_id'))->setParameter(':org_id', $this->session->get($this->sessionKey)); }