为dataProvider调用多个作用域

时间:2014-12-30 08:29:43

标签: php yii

我正在使用Yii 1.1.15,并想知道是否有办法调用多个范围?

在我的模型中:

public function scopes()
    {
        return array(
            'notPending'=>array(
                    'condition'=>'t.pending!=1',
                ),
             'limit5'=>array(
                    'limit'=>5,
                ),
            'limit6'=>array(
                'limit'=>6,
            )
        );
    }

这是我视图中的dataProvider:

$dataProvider=new CActiveDataProvider(Comment::model()->notPending()->limit5()->findAll());

上面的代码没有将限制设置为5,并且给我这个错误

Fatal error: Call to a member function getDbCriteria() on a non-object in /Applications/XAMPP/xamppfiles/htdocs/dev/common/lib/yii/framework/web/CActiveDataProvider.php on line 225

有没有办法通过使用范围来实现?

1 个答案:

答案 0 :(得分:0)

你拼错了,应该是:

Comment::model()->notPending()->limit5()->findAll() // see the last ()    

Scopes section

更新

来自here似乎在ActiveDataProvider中,您最后不需要设置findAll()

public function actionIndex()
{
 $model = Orders::model()->own()->published();
 $dataProvider=new CActiveDataProvider($model);
 $this->render('index',array(
    'dataProvider'=>$dataProvider,
 ));
}