我正在尋找一種方法如何將行爲附加到Yii框架中的網格視圖中顯示的模型。網格視圖使用CActiveDataProvider,我需要每個$ data元素都有一個附加的行爲。該模型不應該在構造之後附加行爲,因爲它僅與網格視圖相關。Yii - 附加在CActiveDataProvider行爲
感謝
我正在尋找一種方法如何將行爲附加到Yii框架中的網格視圖中顯示的模型。網格視圖使用CActiveDataProvider,我需要每個$ data元素都有一個附加的行爲。該模型不應該在構造之後附加行爲,因爲它僅與網格視圖相關。Yii - 附加在CActiveDataProvider行爲
感謝
您可以創建下面的類用於創建數據提供者。
ActiveDataProvider extends CActiveDataProvider{
public function getData(){
$data = parent::getData();
foreach($data as &$model){
$model->attachBehavior('aName', new mybehavior());
}
return $data;
}
}
我剛剛實現了這一點,它的工作原理。感謝威廉。 –
(而不是在另一個答案建議設立一個CActiveDataProvider覆蓋)另一種選擇是做所有你的模型查詢的時間提前,並附上您的行爲在你的控制器。然後傳遞給CArrayDataProvider。
嗯,想一想,我更喜歡另一種方法:-)爲了完整起見,我會留下這個。
你想要附加什麼類型的行爲? – Pitchinnate