Example #1
0
 public function joinModels(Model $modelA, Model $modelB, $type = 'inner', $bNoSelect = false)
 {
     $type = in_array($type, ['inner', 'left', 'right']) ? $type : 'inner';
     if (!$bNoSelect) {
         $this->addSelect($modelB->getColumns(true, true, true));
     }
     switch ($type) {
         default:
         case 'inner':
             $this->innerJoin($modelA->getAlias(), $modelB->getTable(), $modelB->getAlias(), $modelA->getAlias() . '.' . $modelB->getOwnExternalForeignKey() . ' = ' . $modelB->getAlias() . '.' . $modelB->getPrimaryKey());
             break;
         case 'left':
             $this->leftJoin($modelA->getAlias(), $modelB->getTable(), $modelB->getAlias(), $modelA->getAlias() . '.' . $modelB->getOwnExternalForeignKey() . ' = ' . $modelB->getAlias() . '.' . $modelB->getPrimaryKey());
             break;
         case 'right':
             break;
     }
     $modelB->autoJoin($this);
     return $this;
 }