diff --git a/src/ActiveQuery.php b/src/ActiveQuery.php index 519483f..3115e81 100644 --- a/src/ActiveQuery.php +++ b/src/ActiveQuery.php @@ -66,7 +66,7 @@ public function createCommand($db = null) // lazy loading if (is_array($this->via)) { // via relation - /* @var $viaQuery ActiveQuery */ + /** @var $viaQuery ActiveQuery */ list($viaName, $viaQuery) = $this->via; if ($viaQuery->multiple) { $viaModels = $viaQuery->all(); @@ -245,9 +245,13 @@ public function addSelect($columns) */ public function one($db = null) { - $row = parent::one($db); + if ($this->asArray) { + return parent::one($db); + } + + $row = $this->searchOne($db); - return $this->asArray ? $row : reset($this->populate([$row])); + return reset($this->populate([$row])); } /** diff --git a/src/Query.php b/src/Query.php index bb1b2ba..789f139 100644 --- a/src/Query.php +++ b/src/Query.php @@ -66,6 +66,11 @@ public function createCommand($db = null) } public function one($db = null) + { + return $this->searchOne($db); + } + + public function searchOne($db = null) { return $this->limit(1)->addOption('batch', false)->search(); }