Yii - 在CActiveDataProvider中附加行为

时间:2013-04-02 21:12:55

标签: php yii behavior

我正在寻找一种方法如何将行为附加到Yii Framework中网格视图中显示的模型。网格视图使用CActiveDataProvider,我需要每个$ data元素都附加一个行为。模型不应该在构造之后附加行为,因为它仅与网格视图相关。

由于

2 个答案:

答案 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。

嗯,考虑一下,我更喜欢另一种方法:-)为了完整起见,我会留下这个。