public function getQuerySet() { if ($this->_qs === null) { $qs = parent::getQuerySet(); $this->_qs = $qs->filter(array_merge([$this->to => $this->primaryModel->{$this->from}], $this->extra)); if ($this->primaryModel->getIsNewRecord()) { $this->_qs->distinct(); } } return $this->_qs; }
public function getQuerySet() { $db = ConnectionManager::getDb(); if ($this->_qs === null) { $qs = parent::getQuerySet(); $this->relatedTableAlias = $qs->makeAliasKey($this->relatedTable); $qs->join('JOIN', $this->relatedTable . ' ' . $this->relatedTableAlias, $this->makeOnJoin($qs)); $this->_qs = $qs->filter([$this->relatedTableAlias . '.' . $db->schema->quoteColumnName($this->primaryModelColumn) => $this->primaryModel->pk]); if (!empty($this->extra)) { $this->_qs->filter($this->extra); } } return $this->_qs; }