【问题标题】:can we assign session values to cgridview without dataprovider我们可以在没有数据提供者的情况下将会话值分配给 cgridview
【发布时间】:2014-05-25 01:53:06
【问题描述】:

Mycart 存储在我想在 cgridview 中显示的会话中。我已经将 cgridview 与 dataprovider 一起使用,但我可以使用会话值来执行此操作吗?有可能吗?如果不是,那么实现这一目标的最佳方法是什么。如果是,因为我不知道该如何进行。

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

【问题讨论】:

  • 为gridview使用数组数据提供者

标签: session yii shopping-cart cgridview


【解决方案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
    )
));

【讨论】:

  • 谢谢你的工作就像一个奇迹,但然后指定键域,否则抛出未定义的索引 id 异常,即 $dataProvider = new CArrayDataProvider($sessionData,array('keyField'=>'id'));
猜你喜欢
  • 1970-01-01
  • 2013-06-24
  • 1970-01-01
  • 1970-01-01
  • 2010-11-23
  • 2017-09-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多