2013-04-02 1 views
0

Я ищу способ привязки поведения к модели, отображаемой в виде сетки в Yii Framework. В представлении сетки используется CActiveDataProvider, и мне нужно, чтобы каждый элемент данных имел привязанность к нему. Модель не должна присоединяться к поведению после построения, поскольку она связана только с видом сетки.Yii - Прикрепление поведения в CActiveDataProvider

Благодаря

+0

Какое поведение вы пытаетесь прикрепить? – Pitchinnate

ответ

1

Вы можете создать следующий класс использовать для создания поставщика данных.

ActiveDataProvider extends CActiveDataProvider{ 

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

    foreach($data as &$model){ 
     $model->attachBehavior('aName', new mybehavior()); 
    } 
    return $data; 
    } 
} 
+0

Я только что реализовал это, и он работает. Спасибо, Виллем. –

0

Другой вариант (вместо создания CActiveDataProvider переопределение, как это предлагается в другой ответ), чтобы сделать все ваши модели запрашивая раньше времени и вложению поведения в контроллере. Затем перейдите к CArrayDataProvider.

Хм, думая об этом, мне нравится другой подход лучше :-) Я оставлю это для полноты.