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


PHP EntityRepository::countBy方法代碼示例

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


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

示例1: countBy

 /**
  * countBy 
  * 
  * @param array $criteria 
  * @access public
  * @return void
  */
 public function countBy(array $criteria)
 {
     if (!$this->getInterfaceCriteriaParser()) {
         if (method_exists(get_parent_class($this), 'conutBy')) {
             return parent::countBy($criteria);
         }
         throw new \Exception('EntityRepository does not support method "countBy". Please overwrite this method.');
     }
     $query = $this->createInterfaceQuery($criteria, array(), null, null);
     $nativeQuery = $query->getNativeQuery();
     // Check Composite Key or not
     if ($this->getClassMetadata()->isIdentifierComposite) {
         // Select COUNT
         if (!$nativeQuery->getHint(\Doctrine\ORM\Tools\Pagination\CountOutputWalker::HINT_DISTINCT)) {
             $nativeQuery->setHint(\Doctrine\ORM\Tools\Pagination\CountOutputWalker::HINT_DISTINCT, true);
         }
         $platform = $nativeQuery->getEntityManager()->getConnection()->getDatabasePlatform();
         // law of demeter win
         $rsm = new ResultSetMapping();
         $rsm->addScalarResult($platform->getSQLResultCasing('dctrn_count'), 'count');
         $nativeQuery->setHint(\Doctrine\ORM\Query::HINT_CUSTOM_OUTPUT_WALKER, 'Doctrine\\ORM\\Tools\\Pagination\\CountOutputWalker');
         $nativeQuery->setResultSetMapping($rsm);
     } else {
         // Set Distinct
         if (!$nativeQuery->getHint(\Doctrine\ORM\Tools\Pagination\CountWalker::HINT_DISTINCT)) {
             $nativeQuery->setHint(\Doctrine\ORM\Tools\Pagination\CountWalker::HINT_DISTINCT, true);
         }
         // Select COUNT
         $nativeQuery->setHint(\Doctrine\ORM\Query::HINT_CUSTOM_TREE_WALKERS, array('Doctrine\\ORM\\Tools\\Pagination\\CountWalker'));
     }
     $nativeQuery->setFirstResult(null)->setMaxResults(null);
     // Convert to CountQuery
     return $nativeQuery->getSingleScalarResult();
 }
開發者ID:o3co,項目名稱:query,代碼行數:41,代碼來源:EntityRepository.php


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