• yii widget使用的3个用法


    yii视图中使用的widget方式总结:
    常用的有3种方式:
    一、显示详细信息:

    Java代码  收藏代码
    1. $this->widget('zii.widgets.CDetailView', array(  
    2.     'data' => $model,  
    3.     'attributes' => array(  
    4.         'id',  
    5.         'title',  
    6.         'content',  
    7.     ),  
    8. );  

     
    二、显示列表,可以进行条件限制和分页:
    控制器:

    Java代码  收藏代码
    1. $dataProvider = new CActiveDataProvider('Post', array(  
    2.     'criteria' => array(  
    3.             'condition' => 'project_id = :project_id',  
    4.             'params' => array(':project_id' => $pid),  
    5.         ),  
    6.     'pagination' => array(  
    7.         'pageSize' => '5',  
    8.     ),  
    9. ));  

     
    视图:

    Java代码  收藏代码
    1. $this->widget('zii.widgets.CListView',array(  
    2.     'dataProvider' => $dataProvider, //数据源  
    3.     'itemView' => '_view', //渲染子视图,传给模板的值用$data接收。  
    4.     ),  
    5. );  


    子视图:


        getAttributeLabel('id')); ?>://$data接收来自父视图的数据,使用getAttributeLabel()获取模型中设置的标签
        id), array('view', 'id'=>$data->id)); ?>//使用$data->attribute获取值。
        

    三、显示列表,但是结果会在表格中显示

    Java代码  收藏代码
    1. $this->widget('zii.widgets.grid.CGridView', array(  
    2.     'dataProvider'=>$dataProvider, //数据源  
    3.     'columns'=>array(  
    4.         'title',          // display the 'title' attribute  
    5.         'category.name',  // display the 'name' attribute of the 'category' relation //显示与category相关的name  
    6.         'content:html',   // display the 'content' attribute as purified HTML 显示净化过的HTML格式  
    7.         array(            // display 'create_time' using an expression  
    8.             'name'=>'create_time',  
    9.             'value'=>'date("M j, Y", $data->create_time)',  
    10.         ),  
    11.         array(            // display 'author.username' using an expression  
    12.             'name'=>'authorName',  
    13.             'value'=>'$data->author->username',  
    14.         ),  
    15.         array(            // display a column with "view", "update" and "delete" buttons  
    16.             'class'=>'CButtonColumn',  
    17.         ),  
    18.     ),  
    19.     'filter'=>$model,//对用户的输入进行过滤  
    20. ));  

     

    Yii中loadModel的使用:$this->loadModel($modelId);
    一般在R/U/D操作中,会loadModel($modelId),这是因为此时,读,更新和删除时,已经通过GET方式获取到了model的id值,只需要将对应id的model加载进来,就可以了。
    但是在C(建立),不需要loadModel,而是需要新建一个初始化的model。
    使用$_POST['Model']的值分别填充model的attribute后,就可以save()了。

    Yii中不同控制器使用同一个模板:
    在Yii的CRUD操作中,C和U使用的是同一个子视图。区别在于:
    C操作中,所有的input的值都是空,新建的model也是初始化状态,并准备接收来自POST的值。
    在U操作中,所有input的值需要通过loadModel($id)的方式填充,然后准备接收来自POST的更新的值(有的
    值并没有被用户修改);
    然后,根据$model->isNewRecord()来判断提交按钮显示C还是U操作。
    最后使用$model->save();将记录存储。

    Yii中渲染视图的方式:
    使用$this->render()和$this->renderPartial()渲染视图;
    前者一般渲染一个整体视图,在整体视图中可能会用后者渲染需要重复渲染的部分。
    例如在indexAction中一般会显示记录列表,由于所有记录的渲染方式一致,此时会使用子
    视图来分别渲染相同的部分。而index视图只是渲染一个大的结果,比如导航面包碎屑,记录的条数和
    分页等。

    From:http://zhouyujiao163.blog.163.com/blog/static/48363054201161464156603/

  • 相关阅读:
    UICollectionView中使用 UICollectionViewFlowLayout进行布局(模仿苹果相册)
    使用CocoaPods被卡住:Updating local specs repositories
    【原】iOS 同时重写setter和getter时候报错:Use of undeclared identifier '_name';did you mean 'name'
    iOS 设置不同的字体颜色
    使用java代码,动态给TextView设置drawable
    格式化浮点数(保留指定位数)
    监听输入法的出现和隐藏
    dp和px的转换
    获取状态栏高度
    获取在attr.xml中声明的主题样式
  • 原文地址:https://www.cnblogs.com/liuwenbohhh/p/4368083.html
Copyright © 2020-2023  润新知