<rmcreative>

RSS

Все заметки с тегами «Yii, Active Record, scope»

Можно уточнить:

    (1)
  1. Yii: универсальный scope для отношений

    19 апреля 2011

    Довольно часто простые именованные группы условий, они же scope, требуется использовать как в отношении, так для самой модели, в которой они описаны. Делается такой scope следующим образом:

    public function published($val = true)
    {
        $val = (int)$val;
        $owner=$this->getOwner();
        $criteria=$owner->getDbCriteria();
        $alias=$owner->getTableAlias();
     
        $criteria->mergeWith(array(
            'condition'=>$alias.'.published='.$val,
        ));
     
        return $owner;
    }

    getTableAlias даёт нам t, если используется сама модели и имя таблицы, если scope используется в отношении.

    17 комментариев
  2. Yii: параметры именованных групп условий в отношениях

    20 февраля 2011

    До готовящегося релиза 1.1.7 можно было применить именованные группы условий, они же named scopes, к отношениям:

    $posts=Post::model()->with('comments:recently:approved')->findAll();

    Но нельзя было указать для них параметры. Решил эту проблему creocoder. Теперь, слив свежий код из SVN, можно делать так:

    $users=User::model()->findAll(
        'with'=>array(
            'posts'=>array(
                'scopes'=>array(
                    'rated'=>5,
                ),
            ),
        ),
    );
    8 комментариев