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


PHP AbstractWrapper::getMetadata方法代碼示例

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


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

示例1: findTranslation

 /**
  * {@inheritDoc}
  */
 public function findTranslation(AbstractWrapper $wrapped, $locale, $field, $translationClass, $objectClass)
 {
     $em = $this->getObjectManager();
     // first look in identityMap, will save one SELECT query
     foreach ($em->getUnitOfWork()->getIdentityMap() as $className => $objects) {
         if ($className === $translationClass) {
             foreach ($objects as $trans) {
                 $isRequestedTranslation = !$trans instanceof Proxy && $trans->getLocale() === $locale && $trans->getField() === $field;
                 if ($isRequestedTranslation) {
                     if ($this->usesPersonalTranslation($translationClass)) {
                         $isRequestedTranslation = $trans->getObject() === $wrapped->getObject();
                     } else {
                         $isRequestedTranslation = $trans->getForeignKey() === $wrapped->getIdentifier() && $trans->getObjectClass() === $wrapped->getMetadata()->name;
                     }
                 }
                 if ($isRequestedTranslation) {
                     return $trans;
                 }
             }
         }
     }
     $qb = $em->createQueryBuilder();
     $qb->select('trans')->from($translationClass, 'trans')->where('trans.locale = :locale', 'trans.field = :field');
     $qb->setParameters(compact('locale', 'field'));
     if ($this->usesPersonalTranslation($translationClass)) {
         $qb->andWhere('trans.object = :object');
         $qb->setParameter('object', $wrapped->getObject());
     } else {
         $qb->andWhere('trans.foreignKey = :objectId');
         $qb->andWhere('trans.objectClass = :objectClass');
         $qb->setParameter('objectId', $wrapped->getIdentifier());
         $qb->setParameter('objectClass', $objectClass);
     }
     $q = $qb->getQuery();
     $q->setMaxResults(1);
     $result = $q->getResult();
     if ($result) {
         return array_shift($result);
     }
     return null;
 }
開發者ID:erichard,項目名稱:DoctrineExtensions,代碼行數:44,代碼來源:ORM.php


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