/** * Joins with another join element * @param \Database\ActiveRecord\Join\Element $element the element to be joined */ public function join($element) { if ($element->slave !== null) { $this->join($element->slave); } if (!empty($element->relation->select)) { $this->selects[] = $element->getColumnSelect($element->relation->select); } $this->conditions[] = $element->relation->condition; $this->orders[] = $element->relation->order; $this->joins[] = $element->getJoinCondition(); $this->joins[] = $element->relation->join; $this->groups[] = $element->relation->group; $this->havings[] = $element->relation->having; if (is_array($element->relation->params)) { if (is_array($this->params)) { $this->params = array_merge($this->params, $element->relation->params); } else { $this->params = $element->relation->params; } } $this->elements[$element->id] = true; }