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