модель без базы

Как сделать модель, которая бы работала не с базой данных, а с файлом (мне нужно обработать Excel-файл - но это не важно, можно для примера с любым, скажем - текстовым файлом, а с excel-сам разберусь).

Собственно нужно, чтобы эту модель можно было использовать со стандартными виджетами (хотя бы CGridView, CListView и CDetailView) типа так:


$this->widget('zii.widgets.CDetailView', array(

	'data'=>$model,

	'attributes'=>array(

		'products_id',

. . .



где $model - наша модель.

Заранее спасибо!

CGridView, CListView и CDetailView работают не с моделью как таковой, а с классом DataProvider который может быть как ActiveRecordDataProvider так и ArrayDataProvider…

Так что если тебе всего навсего нужно отображать данные, то переведи их в РНР массив и создай провайдера:




//$arr - твой массив

$rows = new CArrayDataProvider($arr,array(

        'keyField'   => 'id', 

        'pagination' => array(

                'pageSize'=>100,

        )

        )

);


//который передай гриду

$this->widget('zii.widgets.CDetailView', array(

        'data'=>$rows,

        'attributes'=>array(

                'products_id',



если же нужно эти данные менять, наверное нужно писать свой класс для провайдера, наследуя CDataProvider

В CGridView и CListView - dataProvider, а в CDetailView - model, но если внимательно почитать ман :), то видно, что

Спасибо огромное!