十九、挂件CDetailView

对于单条数据查询出来之后 我们通常需要展示出来 如下图

十九、挂件CDetailView

我们当然可以使用table原生的表格来做到这一切,不过YII已经为我们封装了一个优秀的挂件,CDetailView,我们只需要适当的配置一下
首先我们创建一个方法actionView,查询出user表数据以及关联的city和User_info的数据,并渲染视图view
public function actionView($id){
        $id = trim($id);
        //饥渴式加载
        $user = User::model()->with('city','user_info')->findByPk($id);
        $this->render('view',array(
            'user'=>$user,
        ));
    }
新建视图views/user/view.php

<h1>用户详情</h1>
<?php $this->widget('zii.widgets.CDetailView', array(
    'data'=>$user,//data字段里面传递查询出来的单条数据模型对象
    //attributes里面配置需要展示的字段
    'attributes'=>array(
        'id',             // id attribute (in plain text) 如果是一个字串 默认的name是 $user->getAttributeLabel('id') value是 $user->id
        'username',
        'city.name',        // an attribute of the related object "owner" 输出关联的city表的name属性值
//        'description:html',  // description attribute in HTML
        array(               // related city displayed as a link
            'label'=>'简介',
            'type'=>'raw',//以html的格式展示
            'value'=>$user->user_info->info,
//            'value'=>CHtml::link(CHtml::encode($model->city->name),
//                                 array('city/view','id'=>$model->city->id)),
        ),
        array(
            'name'=>'create_time',
            'type'=>'datetime',//以datetime格式展示
        ),
        array(
            'name'=>'update_time',
            'value'=>date('Y-m-d',$user->update_time),
        ),
    ),
));
?>

你可能感兴趣的:(yii,yii视频)