public function testSetIn() { $fieldDescriptor = new DoctrineFieldDescriptor('id', 'title_id', self::$entityName); $this->doctrineListBuilder->addField($fieldDescriptor); $this->doctrineListBuilder->in($fieldDescriptor, [1, 2]); $this->queryBuilder->expects($this->once())->method('andWhere')->with('(SuluCoreBundle:Example.id IN (:title_id))'); $this->doctrineListBuilder->execute(); }
public function testSetIn() { $fieldDescriptor = new DoctrineFieldDescriptor('id', 'title_id', self::$entityName); $this->doctrineListBuilder->addSelectField($fieldDescriptor); $this->doctrineListBuilder->in($fieldDescriptor, [1, 2]); $this->queryBuilder->expects($this->once())->method('andWhere')->withAnyParameters(); $this->doctrineListBuilder->execute(); }
/** * Applies the filter parameter and hasNoparent parameter for listbuilder. * * @param Request $request * @param array $filter * @param DoctrineListBuilder $listBuilder */ protected function applyRequestParameters(Request $request, $filter, $listBuilder) { if (json_decode($request->get('hasNoParent', null))) { $listBuilder->where($this->getFieldDescriptorForNoParent(), null); } if (json_decode($request->get('hasEmail', null))) { $listBuilder->whereNot($this->getFieldDescriptors()['mainEmail'], null); } foreach ($filter as $key => $value) { if (is_array($value)) { $listBuilder->in($this->getFieldDescriptors()[$key], $value); } else { $listBuilder->where($this->getFieldDescriptors()[$key], $value); } } }
/** * Prepare list response. * * @param Request $request * @param DoctrineListBuilder $listBuilder * @param string $locale * * @return array */ private function prepareListResponse(Request $request, DoctrineListBuilder $listBuilder, $locale) { $idsParameter = $request->get('ids'); $ids = array_filter(explode(',', $idsParameter)); if ($idsParameter !== null && count($ids) === 0) { return []; } if ($idsParameter !== null) { $listBuilder->in($this->fieldDescriptors['id'], $ids); } $listResponse = $listBuilder->execute(); $listResponse = $this->addAvatars($listResponse, $locale); if ($idsParameter !== null) { $comparator = $this->getComparator(); // the @ is necessary in case of a PHP bug https://bugs.php.net/bug.php?id=50688 @usort($listResponse, function ($a, $b) use($comparator, $ids) { return $comparator->compare($a['id'], $b['id'], $ids); }); } return $listResponse; }