Yii';s CArrayDataProvider和新行
是否有一种方法可以在网格中显示从CActiveDataProvider获取的数据,并提供一些实际上尚未进入数据库的新行 这是我的设想 我必须填写X倍(账单中产品的数量),并为每一行提供编辑和保存的可能性Yii';s CArrayDataProvider和新行,yii,grid,master-detail,cactivedataprovider,Yii,Grid,Master Detail,Cactivedataprovider,是否有一种方法可以在网格中显示从CActiveDataProvider获取的数据,并提供一些实际上尚未进入数据库的新行 这是我的设想 我必须填写X倍(账单中产品的数量),并为每一行提供编辑和保存的可能性 Product QTY product1 3 | ____ Edit item 1 (not yet in the db) ____ Edit item 2 (not yet in the db) ____ Edit item 3 (
Product QTY
product1 3
|
____ Edit item 1 (not yet in the db)
____ Edit item 2 (not yet in the db)
____ Edit item 3 (not yet in the db)
所以它有点像一个主细节网格(我已经把它整理好了怎么做…)
但我无法在网格上显示arren尚未在数据库中显示的内容
我知道我必须创建一个临时模型数组,比如$model[]=newmodel();然后以某种方式将数据推送到CActiveDataProvider,但不知道syntaxis…您不能使用
CActiveDataProvider执行此操作,因为正如文档所述
CActiveDataProvider以类modelClass的ActiveRecord对象的形式提供数据。它使用AR CActiveRecord::findAll方法从数据库检索数据
然而,这是有原因的。你可以在其中放入任意数据,也就是说,将一个真实对象数组与一个空对象数组合并并使用它
$rawData=array(
array('id'=>1, 'username'=>'from', 'email'=>'array'),
array('id'=>2, 'username'=>'test 2', 'email'=>'hello@example.com'),
);
$arrayDataProvider=new CArrayDataProvider($rawData, array(
'id'=>'id',
'sort'=>array(
'attributes'=>array(
'username', 'email',
),
),
'pagination'=>array(
'pageSize'=>10,
),
));
如您所见,这里的数据是一个简单的数组,但您甚至可以对数据进行排序。您是否使用CActiveDataProvider
进行了尝试?