示例#1
0
 public function setRelationMap(RelationMap $relationMap, $leftTableAlias = null, $relationAlias = null)
 {
     $leftCols = $relationMap->getLeftColumns();
     $rightCols = $relationMap->getRightColumns();
     $leftValues = $relationMap->getLocalValues();
     $nbColumns = $relationMap->countColumnMappings();
     for ($i = 0; $i < $nbColumns; $i++) {
         if (null !== $leftValues[$i]) {
             if ($relationMap->getType() === RelationMap::ONE_TO_MANY) {
                 //one-to-many
                 $this->addForeignValueCondition($rightCols[$i]->getTableName(), $rightCols[$i]->getName(), $relationAlias, $leftValues[$i], Criteria::EQUAL);
             } else {
                 //many-to-one
                 $this->addLocalValueCondition($leftCols[$i]->getTableName(), $leftCols[$i]->getName(), $leftTableAlias, $leftValues[$i], Criteria::EQUAL);
             }
         } else {
             $this->addExplicitCondition($leftCols[$i]->getTableName(), $leftCols[$i]->getName(), $leftTableAlias, $rightCols[$i]->getTableName(), $rightCols[$i]->getName(), $relationAlias, Criteria::EQUAL);
         }
     }
     $this->relationMap = $relationMap;
     return $this;
 }