我们可以在没有dataprovider的情况下将会话值分配给cgridview

时间:2014-05-25 01:53:07

标签: session yii shopping-cart cgridview

Mycart存储在我希望在cgridview中显示的会话中。我已经将cgridview与dataprovider一起使用,但是我可以使用会话值来实现这一点。是否可能?如果不是最好的方法是什么。如果是,我不知道如何继续。

请提供一些指导或示例。如果我不清楚,请告诉我。我一定要澄清自己。

1 个答案:

答案 0 :(得分:1)

如果您不想使用数据提供者,您可以随时创建自己的HTML表格。

Yii CGridView需要数据提供者,因此如果您无法提供数据提供者,则无法使用CGridView。请改用CArrayDataProvider

$sessionData = Yii::app()->user->getState('cart');
// $dataProvider = new CArrayDataProvider($sessionData);   //throws undefined index:id exception
$dataProvider = new CArrayDataProvider($sessionData, array('keyField'=>'id'));

$this->widget('zii.widgets.grid.CGridView', array(
    'id' => 'your-grid',
    'dataProvider' => $dataProvider,
    'columns' => array(
        'item_name',
        'qty',
        // etc
    )
));