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

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

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

  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. ));

视图:

  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获取值。
    

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

  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/

yii widget使用的3个用法的更多相关文章

  1. Yii widget使用

    关于widgets,他们在yii中的关系如下 system.web.widgets 系统自带最基本的widget zii.widgets 是基本扩展 zii.widgets.grid 是基本扩展的重要 ...

  2. yii框架中使用gii的用法

    首先在config文件中的 main-local.php中添加一句 'allowedIPs' => ['*'],如下图所示:

  3. Yii使用笔记 2

    yii中的 getId等函数, id更多的是一个 string, 而不是数字. CCaptchaAction > CAction > CComponent. 实现是 IAction. yi ...

  4. yii2开发后记

    h2:first-child, body>h1:first-child, body>h1:first-child+h2, body>h3:first-child, body>h ...

  5. [moka同学摘录]Yii2.0开发初学者必看

    想要了解更多YII,PHP方面内容,请关注本博客. 基础总结 1.修改默认控制器/方法 yii默认是site控制器,可以在web.php中设置$config中的'defaultRoute'='xxxx ...

  6. Android控件篇

    Android中提供了丰富的UI空间.为了最大限度地发挥平台的性能.每个开发人员必须熟练掌握UI控件尤其是经常使用的UI控件.并能依据须要呈现的内容选择最恰当的控件. Android提供了XML配置和 ...

  7. Android-Widget桌面小组件

    1, 掌握Widget的用:Widget的用途,能够添加到手机桌面的程序 2, Widget的特点和用法步骤: 特点:快捷,方便,个性化,可自定义功能,可及时控制更新Widget显示内容 3, 用法步 ...

  8. Yii中的CCheckBoxColumn在widget中的用法

    'columns'=>array(        array(            'class'=>'CCheckBoxColumn',            'id'=>'us ...

  9. yii accessRules用法

    访问控制过滤器(Access Control Filter)访问控制过滤器是检查当前用户是否能执行访问的controller action的初步授权模式. 这种授权模式基于用户名,客户IP地址和访问类 ...

随机推荐

  1. sublime之markdown快捷键

    目录 sublime 快捷键 markdown技能 sublime 快捷键 ctrl + shift + p 进入命令面板 package install 进入下载仓库 ctrl + alt + O ...

  2. 【sqli-labs】 less46 GET -Error based -Numeric -Order By Clause(GET型基于错误的数字型Order By从句注入)

    http://192.168.136.128/sqli-labs-master/Less-46/?sort=1 sort=4时出现报错 说明参数是添加在order by 之后 错误信息没有屏蔽,直接使 ...

  3. ipv4的设置

    有段时间自己的网总是连不上,别人的都可以,因为公司又wifi,就将就着用wifi了,没有去查看原因,后来由于公司1网段大部分ip号被占用,系统要接入32路主机测试,每个主机都要分配ip,只好开辟2网段 ...

  4. jenkins环境搭建(Windows)

    1.下载并解压Tomcat Tomcat官方网站:http://tomcat.apache.org/ 下载并解压,解压后的目录结构如下: 2.下载并安装适合自己电脑系统的 jenkins Jenkin ...

  5. std::vector遍历

    std::vector是我在标准库中实用最频繁的容器.总结一下在遍历和创建vector时需要注意的一些地方. 在不考虑线程安全问题的前提下,在C++11中有五种遍历方式. 方式一 for (size_ ...

  6. php省市区三级联动

    效果 步骤 前端:通过ajax请求获取数据,使用了jquery 页面一开始加载所有省份信息 ->当选择省下拉框后触发改变监听时间-change ->当选择市下拉框后触发改变监听时间-cha ...

  7. Android之手机振动和振铃

    一.振动的实现1.使用振动所需的权限 <uses-permission android:name="android.permission.VIBRATE" />2.相关 ...

  8. 怎么选择最适合自己的Python培训机构?

    Python培训已经成为入门Python的一个重要途径,它的优势在于学习知识的系统性.快速性和实用性.Python培训毕业的学员大多数拥有较强的实战动手能力,能够较快上手,更符合企业需求. 不过,大部 ...

  9. 浅谈 extern "C"

    今天上课实在无聊,就看了看 extern "C" 的作用,看了以后对它有了一点点理解,在这里给大家分享一下(本菜鸡水平有限,如若有说得不对的地方,还望大家指出). extern 关 ...

  10. 6.3.2 使用struct模块读写二进制文件

    使用 struct 模块需要使用 pack() 方法吧对象按指定个数进行序列化,然后使用文件对象的write方法将序列化的结果写入二进制文件:读取时需要使用文件对象的read()方法读取二进制文件内容 ...