【问题标题】:How to access a property while binding an array with CGridView in YII如何在 YII 中使用 CGridView 绑定数组时访问属性
【发布时间】:2013-08-05 08:11:00
【问题描述】:

我有一个网格,我需要在其中绑定月份列表。我已经创建了一个月份列表并将其绑定到列表中,如下所示。

$items = $this->getMonths();
         $dataProvider= new CArrayDataProvider(array(),array('keyField'=>false));   
         $dataProvider->setData($items);
$this->render('monthlyReports',
               array('model'=>$this->loadModel($_POST['Users']['user_id']),
              'dataProvider'=>$dataProvider,));

到目前为止,一切正常。现在在视图文件中我有以下代码

$this->widget('zii.widgets.grid.CGridView', array(
'id'=>'users-grid',
'dataProvider'=>$dataProvider,
'columns'=>array(
    'Months',
    array(
    'name'=>'Months',
    'value'=>'$data->Months'),
)));

现在的问题是我无法在视图文件中以 $data->Months 的形式访问月份,就好像我可以直接访问月份一样。如何以 $data->Months 的形式访问月份。我传递的 $items 数组具有以下值:

Array
(
[0] => Array
    (
        [Months] => January
    )

[1] => Array
    (
        [Months] => February
    )

[2] => Array
    (
        [Months] => March
    )

[3] => Array
    (
        [Months] => April
    )

[4] => Array
    (
        [Months] => May
    )

[5] => Array
    (
        [Months] => June
    )

)

【问题讨论】:

    标签: php yii yii-extensions cgridview


    【解决方案1】:

    您正在传递数组数据,因此您需要以'$data["Months"]' 的身份访问您的数据。

    【讨论】:

      【解决方案2】:

      您有很多方法可以做到这一点。例如:

      控制器:

      $monthList = $this->getMonths();
      
      $this->render('monthlyReports',
                     array('model'=>$this->loadModel($_POST['Users']['user_id']),
                     'monthList'=>$monthList, // Pass the month list to the view
                    'dataProvider'=>$dataProvider,));
      

      查看:

      array(
          'name'=>'Months',
          'value'=>function ($data, $row) use ($monthList){ return $data->Month? $monthList[$data->Month]['Months'] : '' ; }, // $data->Month it's the model attribute with the month value.
      ),
      

      【讨论】:

      • 如果保存月份的值以'1'开始显示数组列表的正确月份,输入:$monthList[$data->Month-1]['Months']
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多