Yii,CGridView没有显示某个属性的记录

时间:2015-04-09 03:34:16

标签: yii null records cgridview

所以我创建了记录,每个记录都有自己特定的Service字段。它们都被填满(不为空)。

在MySQL数据库中,还有该字段Service

的记录

但在我的CGridView中,我的Service字段全部为空白。所有记录的所有Service字段都是空白的。当我点击按钮View - 带放大镜的按钮时,它会显示Service - Not Set

我可以知道可能导致问题的原因吗?请帮帮我谢谢!

使用CGRIDVIEW代码更新

<?php $this->widget('zii.widgets.grid.CGridView', array(
'id' => 'booking-grid',
'htmlOptions'=>array('class'=>'grid-view grid-size'),
'dataProvider' => $model->search(),
'filter' => $model,
'columns' => array(
    array(
        'name'=>'date',
        'htmlOptions'=>array('style'=>'text-align:center', 'height'=>'50px', 'width'=>'80px'),
        'headerHtmlOptions'=>array('height'=>'30px'),
    ),
    array(
        'name'=>'timeStart',
        'header'=>"Time",
        'htmlOptions'=>array('style'=>'text-align:center', 'width'=>'80px'),
    ),
    array(
        'name'=>'client_id',
        'value'=>'GxHtml::valueEx($data->client)',
        'filter'=>GxHtml::listDataEx(Client::model()->findAllAttributes(null, true)),
        'htmlOptions'=>array('width'=>'200px'),
    ),
    array(
            'name'=>'service_id',
            'value'=>'GxHtml::valueEx($data->service)',
            'filter'=>GxHtml::listDataEx(Service::model()->findAllAttributes(null, true)),
    ),
    array(
        'name' => 'complete',
        'header'=>'Status',
        'value' => '($data->complete == 0) ? Yii::t(\'app\', \'Open\') : Yii::t(\'app\', \'Close\')',                   
        'filter' => array('0' => Yii::t('app', 'Open'), '1' => Yii::t('app', 'Close')),
        'htmlOptions'=>array('width'=>'60px', 'style'=>'text-align:center'),
    ),
    'remarks',
    array(
        'class' => 'CButtonColumn',
        'visible'=>true,
        'htmlOptions'=>array('width'=>'70px'),
        'template' => '{view}{update}{delete}{changeComplete}',
        'buttons'=>array(               
            'view' => array(
                'visible'=>"true",
            ),
            'update' => array(
                'visible'=>"true",
            ),
            'delete' => array(
                'visible'=>"UserIdentity::isRoleMember('Admin')",
            ),
            'changeComplete' => array(
                'visible' => '$data->complete=="0"',
                'imageUrl' => 'images/complete.png',
                'options' => array(
                    'title' => 'Complete',
                ),
                'url' => 'Yii::app()->createUrl("booking/changeComplete", array("id"=>$data->id))',
                'click' => "function(){
                    $.fn.yiiGridView.update(\"booking-grid\", {
                        type:'POST',
                        url:$(this).attr('href'),
                        success:function(data) {
                            $.fn.yiiGridView.update(\"booking-grid\");
                        }
                    })
                    return false;
                }",
            ),
        ),
    ),
))); ?>

我试过用相同的字段查看其他CGridViews,它们看起来一样,并且它们工作得非常好。

1 个答案:

答案 0 :(得分:0)

我认为问题是$data->service。可能您的数据与Service实体有关系。因此,要访问Service的属性,您应该使用$data->service->attributeName