このようなモデルの配列があります。モデルはベース 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.
もちろん、値を指定しましたが、null のようです。私も試し$data['NAME']
ました(モデルが返されないことをどこかで読んだためCArrayDataProvider
)が、それでもnullに評価されます。
$dataProvider->getData()
また、渡したのと同じリストを返すことも確認しました。
何を与える?