Наследование: extends Sulu\Component\Rest\ListBuilder\AbstractListBuilder
Пример #1
0
 public function testBetween()
 {
     $nameFieldDescriptor = new DoctrineFieldDescriptor('name', 'name_alias', self::$entityName);
     $this->doctrineListBuilder->setFields([$nameFieldDescriptor]);
     $this->doctrineListBuilder->between($nameFieldDescriptor, [0, 1]);
     $this->queryBuilder->expects($this->once())->method('andWhere')->with('(SuluCoreBundle:Example.name BETWEEN :name_alias1 AND :name_alias2)');
     $this->queryBuilder->expects($this->at(1))->method('setParameter')->with('name_alias1', 0);
     $this->queryBuilder->expects($this->at(2))->method('setParameter')->with('name_alias2', 1);
     $this->doctrineListBuilder->execute();
 }
Пример #2
0
 public function testBetween()
 {
     $nameFieldDescriptor = new DoctrineFieldDescriptor('name', 'name_alias', self::$entityName);
     $this->doctrineListBuilder->setSelectFields([$nameFieldDescriptor]);
     $this->doctrineListBuilder->between($nameFieldDescriptor, [0, 1]);
     $this->queryBuilder->expects($this->once())->method('andWhere')->withAnyParameters();
     $this->queryBuilder->expects($this->at(1))->method('setParameter')->withAnyParameters();
     $this->queryBuilder->expects($this->at(2))->method('setParameter')->withAnyParameters();
     $this->doctrineListBuilder->execute();
 }
Пример #3
0
 /**
  * append parent selector to listbuilder.
  *
  * @param $parentKey
  * @param DoctrineListBuilder $listBuilder
  */
 protected function addParentSelector($parentKey, DoctrineListBuilder $listBuilder)
 {
     $manager = $this->getManager();
     $parentEntity = $manager->findByKey($parentKey);
     $listBuilder->between(new DoctrineFieldDescriptor('lft', 'lft', CategoryManager::$categoryEntityName, 'public.lft', [], true), [$parentEntity->getLft() + 1, $parentEntity->getRgt()]);
 }
Пример #4
0
 /**
  * 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);
         }
     }
 }
Пример #5
0
 /**
  * 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;
 }