我有一系列看起来像这样的模型。这些模型是基本 Yii 模型类 ( BazClass
) 的扩展,所以这是一个自定义解决方案,但我不明白为什么它不应该工作。
$list = array
(
0 => FooClass#1
(
[BazClass:_attributes] => array
(
'FOO_ATTRIBUTE' => '4567'
'BAZ_ATTRIBUTE' => '1234'
'NAME' => 'FOO BAR'
)
[BazClass:_related] => array()
[_md] => null
[CModel:_errors] => array()
[CModel:_validators] => null
[CModel:_scenario] => ''
[CComponent:_e] => null
[CComponent:_m] => null
),
)
我通过这样做使它成为数据提供者:
$dataProvider = new CArrayDataProvider($list, array(
'pagination'=>array(
'pageSize'=>10,
),
));
$dataProvider->setData($list);
并尝试像这样在视图中渲染它。基本上我只是想显示一个名称列表,列名为“名称”。
$this->widget('zii.widgets.grid.CGridView', array(
'dataProvider'=>$dataProvider,
'columns'=>array(
array(
'header' => 'Name',
'value' => $data->NAME,
),
),
));
CGridView
文档中的示例使它看起来是可能的,但我得到的错误是:
Either "name" or "value" must be specified for CDataColumn.
好吧,显然我确实指定了一个值,但它似乎为空。我也尝试过$data['NAME']
(因为我在某处读到CArrayDataProvider
不返回模型),但它仍然评估为空。
我还检查了它$dataProvider->getData()
返回的列表与我传递的列表相同。
是什么赋予了?