/** * @TODO GROUP_CONCAT() * Add a join statement from array collection * * @param $meta - getClassMetaData * @param $fk * @param $field * @param $alias * @param $defaultAlias * @param $targetEntity */ public function fkArrayAssociation($meta, $fk, $field, $alias, $defaultAlias, $targetEntity) { if ($association = $meta->associationMappings[$fk]) { if (!in_array($targetEntity, $this->entitys)) { $condition = $this->getFullFieldName($association['fieldName'], $alias) . ' = ' . $this->getFullFieldName($association['joinColumns'][0]['referencedColumnName'], $defaultAlias); $this->queryBuilder->join($targetEntity, $alias, 'WITH', $condition); $this->queryBuilder->andWhere($condition); $this->entitys[] = $targetEntity; } return '(' . $this->getFullFieldName($field, $alias) . ') AS ' . $this->getFullFieldName($field, $alias, '_'); } }
/** * @param $join * @param $alias */ public function join($join, $alias) { $this->_query->join($join, $alias); $this->_filter['join'][] = array('join' => $join, 'alias' => $alias); }