yii分析 Yii: Just another way to use GridView

来源:互联网 发布:js定时跳转页面 编辑:程序博客网 时间:2024/05/29 04:02

今天当我翻阅Yii 代码的时候发现qiang还给我们提供了CDetailView这个类来完成类似的功能。两者到底有什么区别呢? 我们都知道 CGridView是根据数据表结构来生成我们需要的数据,而CDetailView是根据我们平时一直用到的model实例来生成数据。

同样以上一个列子来写,看看有什么不同:

$criteria = new CDbCriteria;$criteria->select = 'user.id, username, fullname, email, last_login, company.name';$criteria->order = 'username';$users = User::model()->with('company')->together()->findAll($criteria);

很容易发现,这是我们以前在写Yii代码中做的最多的事。

$this->widget('zii.widgets.CDetailView', array(    'model' => $users,    'attributes'=>array(        'id',                     'username',                'fullname',        'company.name',          array(            'dataField' => 'email',            'dataExpression' => 'CHtml::mailto($data->email)'        ),         'last_login',        array('class' => 'CRudColumn', 'header' => '操作')    )));

在这里我们用CdetailView代替原来的CGridView, 这里还能得到对关联表的支持,是不是感觉这种方法更亲切点呢