$dataProvider=new CActiveDataProvider('Page',array(
'criteria'=>$criteria,
'sort'=>array('defaultOrder'=>'id DESC'),
'pagination'=>array('pageSize'=>20),
));
这样的代码,假如我希望执行一个behavior方法的话,该怎么做?
看了API,虽然可以使用 CActiveDataProvider::setData() 方法来定义数据,但是这样写的话,排序、翻页等,又会变得比较麻烦~
请问有没有好的解决方案?
qiang
(Qiang Xue)
5
不是太明白你的问题,你要执行谁的behavior方法?希望怎么执行?
jerry2801
(Jerry2801)
6
我要执行一下我得多语行为插件方法 multilingual()
如主题,要在获取数据 findAll()调用前,使用 $pageModel->multilingual()
有没有办法呢?
qiang
(Qiang Xue)
7
没有很好的办法,你可以override CActiveDataProvider::fetchData().
我觉得如果可以传入$model变量的话,应该就可以解决啊
就是说,如果传入的model是一个CActiveRecord对象的话,就不需要再使用 CActiveRecord::model($className) 这样的方法了,而是直接使用 $model->getAll($criteria),这样的话,你觉得呢?
jerry2801
(Jerry2801)
10
CActiveDataProvider 增加 getModel() 方法
http://code.google.com/p/yii/issues/detail?id=1284