0

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

谢谢

4

2 回答 2

1

您可以创建以下类以用于创建数据提供者。

ActiveDataProvider extends CActiveDataProvider{

  public function getData(){
    $data = parent::getData();

    foreach($data as &$model){
       $model->attachBehavior('aName', new mybehavior());
    }
    return $data;
  }
}
于 2013-04-02T21:30:10.940 回答
0

另一种选择(而不是按照另一个答案中的建议创建 CActiveDataProvider 覆盖)是提前进行所有模型查询并将您的行为附加到控制器中。然后传递给 CArrayDataProvider。

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

于 2013-04-03T01:39:28.527 回答