creocoder / yii2-nested-sets

The nested sets behavior for the Yii framework.
Other
446 stars 129 forks source link

Условия при выборке parents и children #62

Closed brussens closed 9 years ago

brussens commented 9 years ago

Доброго времени! Скажите, при выборке родительских или дочерних нод как нибудь можно использовать where() ? Дело в том, что бывает нужно указывать некоторые условия. Например в случае хлебных крошек для вложенных страниц приходится делать так:

// treeAttribute = false
$breadcrumbs = [];

if($this->parent_id > 0) {// parent_id хранится просто для удобства
    $parents = $this->parents()->all();
    unset($parents[0]);
    foreach($parents as $parent) {
        $breadcrumbs[] = [
            'label' => $parent->title,
            'url' => ['/page/page/view', 'slug' => $parent->slug]
        ];
    }
}

$breadcrumbs[] = $this->title;

return $breadcrumbs;

Спасибо.

creocoder commented 9 years ago

Конечно можно, это by design в поведении изначально. Можно использовать любые ActiveQuery методы. Например:

$this->parents()
    ->with(...)
    ->andWhere(...)
    ->addGroupBy(...)
    ->addOrderBy(,,,)
    ->all();