當前位置: 首頁>>代碼示例>>PHP>>正文


PHP Criteria::orderBy方法代碼示例

本文整理匯總了PHP中Doctrine\Common\Collections\Criteria::orderBy方法的典型用法代碼示例。如果您正苦於以下問題:PHP Criteria::orderBy方法的具體用法?PHP Criteria::orderBy怎麽用?PHP Criteria::orderBy使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在Doctrine\Common\Collections\Criteria的用法示例。


在下文中一共展示了Criteria::orderBy方法的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。

示例1: sort

 /**
  * @param DataStructure\Sort $sorting
  *
  * @return void
  */
 public function sort(DataStructure\Sort $sorting)
 {
     $sortings = [];
     foreach ($sorting as $sortingEntity) {
         if ($this->isExcludedProperty($sortingEntity->getProperty())) {
             continue;
         }
         $sortings[$sortingEntity->getProperty()] = $sortingEntity instanceof DataStructure\Sort\Asc ? 'asc' : 'desc';
     }
     $this->criteria->orderBy($sortings);
 }
開發者ID:phprest,項目名稱:phprest-service-request-filter,代碼行數:16,代碼來源:Orm.php

示例2: searchByContains

 public function searchByContains(array $criteria, array $orderBy = null, $page = 0, $pageSize = PHP_INT_MAX)
 {
     if ($page < 0 || $pageSize < 1) {
         throw new \Exception("Invalid page or pageSize: page must be >= 0 and pageSize must be > 0");
     } else {
         $criteriaObj = new Criteria();
         $i = 0;
         foreach ($criteria as $field => $value) {
             if ($value == null) {
                 continue;
             } else {
                 if ($i++ == 0) {
                     $criteriaObj->where($criteriaObj->expr()->contains($field, $value));
                 } else {
                     $criteriaObj->orWhere($criteriaObj->expr()->contains($field, $value));
                 }
             }
         }
         if ($orderBy != null) {
             $criteriaObj->orderBy($orderBy);
         }
         $total = $this->repository->matching($criteriaObj)->count();
         $query = $this->repository->createQueryBuilder("q")->addCriteria($criteriaObj);
         $items = $query->setFirstResult($page * $pageSize)->setMaxResults($pageSize)->getQuery()->getResult();
         return ResponseUtils::createSearchResponse($total, $items, $page, $pageSize);
     }
 }
開發者ID:rmukras,項目名稱:coffee,代碼行數:27,代碼來源:Repository.php

示例3: applyFilter

 /**
  * @param Request         $request
  * @param FilterInterface $filter
  * @param Criteria        $criteria
  * @param ClassMetadata   $embedClassMeta
  *
  * @return null
  */
 protected function applyFilter(Request $request, FilterInterface $filter, Criteria $criteria, ClassMetadata $embedClassMeta)
 {
     $properties = $filter->getRequestProperties($request);
     if ($filter instanceof OrderFilter && !empty($properties)) {
         $criteria->orderBy($properties);
         return null;
     }
     if ($filter instanceof SearchFilter) {
         foreach ($properties as $name => $propertie) {
             if (in_array($name, $embedClassMeta->getIdentifier())) {
                 continue;
             }
             $expCriterial = Criteria::expr();
             if ($embedClassMeta->hasAssociation($name)) {
                 $associationTargetClass = $embedClassMeta->getAssociationTargetClass($name);
                 $propertyResource = $this->resourceResolver->getResourceForEntity($associationTargetClass);
                 $propertyObj = $this->dataProviderChain->getItem($propertyResource, (int) $propertie['value'], true);
                 if ($propertyObj && $propertyResource instanceof ResourceInterface) {
                     $whereCriteria = $expCriterial->in($name, [$propertyObj]);
                     $criteria->where($whereCriteria);
                 }
             } else {
                 if ($embedClassMeta->hasField($name)) {
                     $fieldMapping = $embedClassMeta->getFieldMapping($name);
                     $type = isset($fieldMapping['type']) ? $fieldMapping['type'] : null;
                     $value = isset($this->mappingFilterVar[$type]) ? filter_var($propertie['value'], $this->mappingFilterVar[$type]) : $propertie['value'];
                     $whereCriteria = isset($propertie['precision']) && $propertie['precision'] === 'exact' ? $expCriterial->eq($name, $value) : $expCriterial->contains($name, $propertie['value']);
                     $criteria->where($whereCriteria);
                 }
             }
         }
     }
 }
開發者ID:eliberty,項目名稱:api-bundle,代碼行數:41,代碼來源:ApplyCriteriaEmbed.php

示例4: createCriteria

 private function createCriteria()
 {
     $criteria = new Criteria();
     $criteria->orderBy(array('username' => 'ASC'));
     $criteria->setFirstResult(2);
     $criteria->setMaxResults(3);
     return $criteria;
 }
開發者ID:brookinsconsulting,項目名稱:ezecosystem,代碼行數:8,代碼來源:DoctrineSelectableAdapterTest.php

示例5: generateMenu

 protected function generateMenu()
 {
     $criteria = new Criteria();
     $criteria->orderBy(['hierarchy' => 'asc']);
     $collection = $this->adminMenuRepository->matching($criteria);
     $elements = $this->filterElements($collection, null);
     $tree = $this->generateTree($collection, $elements);
     return $tree;
 }
開發者ID:wellcommerce,項目名稱:wellcommerce,代碼行數:9,代碼來源:AdminMenuProvider.php

示例6: apply

 /**
  * {@inheritdoc}
  */
 public function apply(Criteria $criteria, FilterValue $value = null)
 {
     $val = null !== $value ? $value->getValue() : $this->getDefaultValue();
     if (!empty($val)) {
         $criteria->orderBy($val);
     }
 }
開發者ID:ramunasd,項目名稱:platform,代碼行數:10,代碼來源:SortFilter.php

示例7: findEmailsByIds

 /**
  * Gets emails by ids
  *
  * @param int[] $ids
  *
  * @return Email[]
  */
 public function findEmailsByIds($ids)
 {
     $queryBuilder = $this->createQueryBuilder('e');
     $criteria = new Criteria();
     $criteria->where(Criteria::expr()->in('id', $ids));
     $criteria->orderBy(['sentAt' => Criteria::DESC]);
     $queryBuilder->addCriteria($criteria);
     $result = $queryBuilder->getQuery()->getResult();
     return $result;
 }
開發者ID:olegpopadko,項目名稱:platform,代碼行數:17,代碼來源:EmailRepository.php

示例8: getMenu

 public function getMenu()
 {
     $criteria = new Criteria();
     $criteria->orderBy(['hierarchy' => 'asc']);
     $criteria->andWhere($criteria->expr()->eq('parent', null));
     return $this->adminMenuRepository->matching($criteria);
 }
開發者ID:Sywooch,項目名稱:WellCommerce,代碼行數:7,代碼來源:AdminMenuProvider.php

示例9: sort

 /**
  * Sort data
  * @param Sorting $sorting
  * @return static
  */
 public function sort(Sorting $sorting)
 {
     if (is_callable($sorting->getSortCallback())) {
         call_user_func($sorting->getSortCallback(), $this->criteria, $sorting->getSort());
         return $this;
     }
     if ($sort = $sorting->getSort()) {
         $this->criteria->orderBy($sort);
         return $this;
     }
     $this->criteria->orderBy([$this->primary_key => 'ASC']);
     return $this;
 }
開發者ID:ublaboo,項目名稱:datagrid,代碼行數:18,代碼來源:DoctrineCollectionDataSource.php

示例10: load

 /**
  * {@inheritdoc}
  */
 public function load(ObjectManager $manager)
 {
     $criteria = new Criteria();
     $criteria->where($criteria->expr()->neq('xThreadId', null));
     /** @var QueryBuilder $threadQueryBuilder */
     $threadQueryBuilder = $manager->getRepository('OroEmailBundle:Email')->createQueryBuilder('entity');
     $threadQueryBuilder->distinct()->select('entity.xThreadId');
     $threadQueryBuilder->addCriteria($criteria);
     $iterator = new BufferedQueryResultIterator($threadQueryBuilder);
     $iterator->setBufferSize(self::BATCH_SIZE);
     $itemsCount = 0;
     $entities = [];
     foreach ($iterator as $threadResult) {
         $threadId = $threadResult['xThreadId'];
         /** @var QueryBuilder $queryBuilder */
         $queryBuilder = $manager->getRepository('OroEmailBundle:Email')->createQueryBuilder('entity');
         $criteria = new Criteria();
         $criteria->where($criteria->expr()->eq('xThreadId', $threadId));
         $criteria->orderBy(['created' => 'ASC']);
         $queryBuilder->addCriteria($criteria);
         $queryBuilder->setFirstResult(0);
         $emails = $queryBuilder->getQuery()->execute();
         if (count($emails) > 1) {
             $itemsCount++;
             $newThread = new EmailThread();
             $manager->persist($newThread);
             foreach ($emails as $key => $email) {
                 /** @var Email $email */
                 if ($key == 0) {
                     $email->setHead(true);
                 } else {
                     $email->setHead(false);
                 }
                 $email->setThread($newThread);
                 $entities[] = $email;
             }
         } elseif (count($emails) == 1) {
             $email = $emails[0];
             $email->setHead(true);
             $itemsCount++;
             $entities[] = $email;
         }
         if (0 == $itemsCount % self::BATCH_SIZE) {
             $this->saveEntities($manager, $entities);
             $entities = [];
         }
     }
     if ($itemsCount % self::BATCH_SIZE > 0) {
         $this->saveEntities($manager, $entities);
     }
 }
開發者ID:Maksold,項目名稱:platform,代碼行數:54,代碼來源:AddEmailActivityGrouping.php

示例11: __invoke

 public function __invoke(Criteria $criteria)
 {
     if (!$this->getController() instanceof AbstractController) {
         throw new \LogicException('Cannot locate the controller');
     }
     $sort = $this->getController()->params()->fromQuery('sorting');
     if ($sort) {
         $fields = explode(',', $sort);
         $orderBy = [];
         foreach ($fields as $field) {
             $parts = explode(':', $field);
             // Ignore it
             if (count($parts) != 2) {
                 continue;
             }
             $orderBy[$parts[0]] = $parts[1];
         }
         $criteria->orderBy($orderBy);
     }
 }
開發者ID:interactive-solutions,項目名稱:zf-stdlib,代碼行數:20,代碼來源:InjectSortingIntoCriteria.php

示例12: testOrderings

 public function testOrderings()
 {
     $criteria = new Criteria();
     $criteria->orderBy(array("foo" => "ASC"));
     $this->assertEquals(array("foo" => "ASC"), $criteria->getOrderings());
 }
開發者ID:richardjh,項目名稱:zf2-addressbook,代碼行數:6,代碼來源:CriteriaTest.php

示例13: getProducerCollection

 /**
  * Returns the collection of producers for given identifiers
  *
  * @param array $identifiers
  *
  * @return \Doctrine\Common\Collections\Collection
  */
 protected function getProducerCollection(array $identifiers = [])
 {
     $criteria = new Criteria();
     $criteria->orderBy(['id' => 'asc']);
     $criteria->where($criteria->expr()->in('id', $identifiers));
     return $this->producerRepository->matching($criteria);
 }
開發者ID:pguso,項目名稱:WellCommerce,代碼行數:14,代碼來源:ProductLayeredNavigationHelper.php

示例14: processOrder

 /**
  * Process order
  * 
  * @param Criteria         $criteria
  * @param RequestInterface $request
  */
 protected function processOrder(Criteria $criteria, RequestInterface $request)
 {
     $criteria->orderBy($request->getOrder());
 }
開發者ID:mikemirten,項目名稱:zgrid-bundle,代碼行數:10,代碼來源:SelectableDataProvider.php

示例15: getShippingMethods

 /**
  * {@inheritdoc}
  */
 public function getShippingMethods() : Collection
 {
     $criteria = new Criteria();
     $criteria->where($criteria->expr()->eq('enabled', true));
     $criteria->orderBy(['hierarchy' => 'asc']);
     $methods = $this->matching($criteria)->filter(function (ShippingMethodInterface $shippingMethod) {
         $paymentMethodsCount = $shippingMethod->getPaymentMethods()->count();
         $shippingMethodCostCount = $shippingMethod->getCosts()->count();
         return $paymentMethodsCount > 0 && $shippingMethodCostCount > 0;
     });
     return $methods;
 }
開發者ID:WellCommerce,項目名稱:ShippingBundle,代碼行數:15,代碼來源:ShippingMethodRepository.php


注:本文中的Doctrine\Common\Collections\Criteria::orderBy方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。