ZheX Blog Idea来源于生活的经验

8十二/090

Yii: Just another way to use GridView

在上一篇 “Yii GridView 初探 ” 中介绍了如何使用Yii的GridView新插件。 今天当我翻阅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, 这里还能得到对关联表的支持,是不是感觉这种方法更亲切点呢?

关联文章:

  1. Yii GridView 初探
  2. 利用 Yii Component 的特性为 Model 添加额外属性
  3. Yii Framework: 从 model 中生成 select option
  4. Yii: 1.1 scenario在验证中的变化
  5. 教程翻译:用 Yii Framework 编写博客 – 9

评论 (0) 引用 (0)

还没有评论.


发表评论


还没有引用.