/** * @param string $entityName * @return CriteriaInterface */ public function relation($entityName) { if (isset($this->relations[$entityName])) { return $this->relations[$entityName]; } if ($this->config->isRelationManyToMany($this->entityName, $entityName)) { list($linkTable, $mainField, $joinedField) = $this->config->getRelationManyToMany($this->entityName, $entityName); $mainTable = $this->config->getTable($this->entityName); $joinedTable = $this->config->getTable($entityName); $this->select->join($linkTable, "{$linkTable}.{$mainField} = {$mainTable}.id", []); $this->select->join($joinedTable, "{$linkTable}.{$joinedField} = {$joinedTable}.id", []); } else { $table = $this->config->getTable($entityName); $this->select->join($table, $this->config->getRelationExpression($this->entityName, $entityName), []); } $relationCriteria = new self($entityName, $this->config, $this->select); $this->relations[$entityName] = $relationCriteria; return $relationCriteria; }
public function testGetRelationManyToManyException() { $this->setExpectedException(ConfigException::class); $this->config->getRelationManyToMany('Task', 'Statistic'); }