我希望这能起作用。我正在编写和开发发票应用程序,并希望将当前发票保存在可以放在blob字段中的数组中。这也将用于存档更改等。
发票的销售项目使用CGridView显示。唯一的是所有文档都说数据源应该是IDataProvider。我不想将整个对象存储在我的Db中,但与此类似:
invoice->array(
InvoiceHeader->array(//header information),
InvoiceItems->array(
item_1->array(
item_id-> '1',
item_count->'3',
....
),
),
),
然后,我想这样做:
$this->widget('zii.widgets.grid.CGridView', array(
'dataProvider'=>$this->invoiceItems,
));
- 边注。永久性存储是一系列表,用于在浏览器错误等情况下保存事件记录。当前系统直接在表中执行此操作,但会导致并发发票编号和统计信息不正确。
最佳答案
您可以先将数组包装在CArrayDataProvider中,然后在CGridView中使用它-
$invoiceItemsDataProvider = new CArrayDataProvider($this->invoiceItems);
$this->widget('zii.widgets.grid.CGridView', array(
'dataProvider'=>$invoiceItemsDataProvider,
));
关于php - 使用数组作为CGridView的数据源,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9538777/