0

このようなモデルの配列があります。モデルはベース 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()また、渡したのと同じリストを返すことも確認しました。

何を与える?

4

1 に答える 1

3

値を引用符で囲む必要があります。そうしないと、間違ったコンテキストで解釈されてしまいます

array( 'header' => 'Name', 'value' => '$data->NAME', ),
于 2013-04-24T06:29:58.767 に答える