protected function augmentSelect(PdoDataSet $select) { $select = $select->from(Model::tableFor($this->foreignClass))->innerJoin(Model::tableFor($this->localClass), Model::primaryKeyFor($this->foreignClass), Model::tableFor($this->localClass) . '.' . $this->foreignKey); $select->rowClass = $this->foreignClass; return $select; }
protected function augmentSelect(PdoDataSet $select) { if (!isset($this->through)) { $relatedClass = $this->foreignClass; } else { $relatedClass = $this->through; } $relatedTable = Model::tableFor($relatedClass); $localTable = Model::tableFor($this->localClass); $foreignKey = $relatedTable . '.' . $this->foreignKey; $primaryKey = Model::primaryKeyFor($this->localClass); $select = $select->from($relatedTable)->innerJoin($localTable, $foreignKey, $primaryKey); $select->rowClass = $relatedClass; if (!isset($this->through)) { return $select; } else { $select = $select->distinct(); $relationship = $this->name; return $select->{$relationship}(); } }