From 20eff7758f66c3884c4cf88ee30cb34cee1882c6 Mon Sep 17 00:00:00 2001 From: Alexander Kochetov Date: Sat, 3 Jan 2015 15:40:03 +0300 Subject: [PATCH] Added NestedSetsQueryBehavior::leaf() --- NestedSetsQueryBehavior.php | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/NestedSetsQueryBehavior.php b/NestedSetsQueryBehavior.php index 1bb8d97..0300dab 100644 --- a/NestedSetsQueryBehavior.php +++ b/NestedSetsQueryBehavior.php @@ -8,6 +8,7 @@ namespace creocoder\nestedsets; use yii\base\Behavior; +use yii\db\Expression; /** * NestedSetsQueryBehavior @@ -24,7 +25,23 @@ class NestedSetsQueryBehavior extends Behavior */ public function roots() { - $this->owner->andWhere([(new $this->owner->modelClass)->leftAttribute => 1]); + $this->owner->andWhere([(new $this->owner->modelClass())->leftAttribute => 1]); + + return $this->owner; + } + + /** + * Gets the leaf nodes. + * @return \yii\db\ActiveQuery the owner + */ + public function leaf() + { + $model = new $this->owner->modelClass(); + $db = $model->getDb(); + + $this->owner->andWhere(new Expression( + $db->quoteColumnName($model->rightAttribute) . ' - ' . $db->quoteColumnName($model->leftAttribute) . ' = 1' + )); return $this->owner; }