Php 如何在YII中使用CGridView绑定数组时访问属性
我有一个网格,需要在其中绑定一个月的列表。我已经创建了一个月的列表,并将其绑定到如下所示的列表Php 如何在YII中使用CGridView绑定数组时访问属性,php,yii,yii-extensions,cgridview,Php,Yii,Yii Extensions,Cgridview,我有一个网格,需要在其中绑定一个月的列表。我已经创建了一个月的列表,并将其绑定到如下所示的列表 $items = $this->getMonths(); $dataProvider= new CArrayDataProvider(array(),array('keyField'=>false)); $dataProvider->setData($items); $this->render('monthlyReports',
$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
)
)
您正在传递数组数据,因此需要以“
”$data[“Months”]”的形式访问数据
您有很多方法可以做到这一点。例:
控制器:
$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,));
视图:
如果saved month的值以“1”开头以显示数组列表的正确月份,请输入:$monthList[$data->month-1]['Months']
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.
),