当前位置: 首页>>代码示例>>PHP>>正文


PHP ResultSetMapping::addMetadataParameterMapping方法代码示例

本文整理汇总了PHP中Doctrine\ORM\Query\ResultSetMapping::addMetadataParameterMapping方法的典型用法代码示例。如果您正苦于以下问题:PHP ResultSetMapping::addMetadataParameterMapping方法的具体用法?PHP ResultSetMapping::addMetadataParameterMapping怎么用?PHP ResultSetMapping::addMetadataParameterMapping使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Doctrine\ORM\Query\ResultSetMapping的用法示例。


在下文中一共展示了ResultSetMapping::addMetadataParameterMapping方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: walkInstanceOfExpression

 /**
  * {@inheritdoc}
  */
 public function walkInstanceOfExpression($instanceOfExpr)
 {
     $sql = '';
     $dqlAlias = $instanceOfExpr->identificationVariable;
     $discrClass = $class = $this->queryComponents[$dqlAlias]['metadata'];
     if ($class->discriminatorColumn) {
         $discrClass = $this->em->getClassMetadata($class->rootEntityName);
     }
     if ($this->useSqlTableAliases) {
         $sql .= $this->getSQLTableAlias($discrClass->getTableName(), $dqlAlias) . '.';
     }
     $sql .= $class->discriminatorColumn['name'] . ($instanceOfExpr->not ? ' NOT IN ' : ' IN ');
     $sqlParameterList = array();
     foreach ($instanceOfExpr->value as $parameter) {
         if ($parameter instanceof AST\InputParameter) {
             $this->rsm->addMetadataParameterMapping($parameter->name, 'discriminatorValue');
             $sqlParameterList[] = $this->walkInputParameter($parameter);
             continue;
         }
         // Get name from ClassMetadata to resolve aliases.
         $entityClassName = $this->em->getClassMetadata($parameter)->name;
         $discriminatorValue = $class->discriminatorValue;
         if ($entityClassName !== $class->name) {
             $discrMap = array_flip($class->discriminatorMap);
             if (!isset($discrMap[$entityClassName])) {
                 throw QueryException::instanceOfUnrelatedClass($entityClassName, $class->rootEntityName);
             }
             $discriminatorValue = $discrMap[$entityClassName];
         }
         $sqlParameterList[] = $this->conn->quote($discriminatorValue);
     }
     $sql .= '(' . implode(', ', $sqlParameterList) . ')';
     return $sql;
 }
开发者ID:BozzaCoon,项目名称:SPHERE-Framework,代码行数:37,代码来源:SqlWalker.php


注:本文中的Doctrine\ORM\Query\ResultSetMapping::addMetadataParameterMapping方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。