/** * Join on middle table of a many-to-many relation. * * @param ManyMany $rel The relation. * @param string $cmAlias The current model alias. * @param int $joinType */ protected function _addJoinClauseManyMany(ManyMany $rel, $cmAlias, $joinType) { // $md stands for "middle". $mdTable = $rel->getMiddleTableName(); $mdAlias = $rel->getMiddleTableAlias(); $mdAlias = $cmAlias === self::DEFAULT_ROOT_ALIAS ? $mdAlias : $cmAlias . '.' . $mdAlias; $jcMiddle = new JoinClause($mdTable, $mdAlias, $joinType); $jcMiddle->on($cmAlias, $rel->cm->column, $mdAlias, $rel->jm->from); $this->setJoinClause($mdAlias, $jcMiddle); return $mdAlias; }