我正在寻找一种方法如何将行为附加到Yii Framework中网格视图中显示的模型。网格视图使用CActiveDataProvider,我需要每个$ data元素都附加一个行为。模型不应该在构造之后附加行为,因为它仅与网格视图相关。
由于
答案 0 :(得分:1)
您可以创建以下类来创建数据提供者。
ActiveDataProvider extends CActiveDataProvider{
public function getData(){
$data = parent::getData();
foreach($data as &$model){
$model->attachBehavior('aName', new mybehavior());
}
return $data;
}
}
答案 1 :(得分:0)
另一个选项(而不是按照另一个答案中的建议创建CActiveDataProvider覆盖)是提前完成所有模型查询并将您的行为附加到控制器中。然后传递给CArrayDataProvider。
嗯,考虑一下,我更喜欢另一种方法:-)为了完整起见,我会留下这个。