yii widget使用的3个用法
yii视图中使用的widget方式总结:
常用的有3种方式:
一、显示详细信息:
- $this->widget('zii.widgets.CDetailView', array(
- 'data' => $model,
- 'attributes' => array(
- 'id',
- 'title',
- 'content',
- ),
- );
二、显示列表,可以进行条件限制和分页:
控制器:
- $dataProvider = new CActiveDataProvider('Post', array(
- 'criteria' => array(
- 'condition' => 'project_id = :project_id',
- 'params' => array(':project_id' => $pid),
- ),
- 'pagination' => array(
- 'pageSize' => '5',
- ),
- ));
视图:
- $this->widget('zii.widgets.CListView',array(
- 'dataProvider' => $dataProvider, //数据源
- 'itemView' => '_view', //渲染子视图,传给模板的值用$data接收。
- ),
- );
子视图:
id), array('view', 'id'=>$data->id)); ?>//使用$data->attribute获取值。
三、显示列表,但是结果会在表格中显示
- $this->widget('zii.widgets.grid.CGridView', array(
- 'dataProvider'=>$dataProvider, //数据源
- 'columns'=>array(
- 'title', // display the 'title' attribute
- 'category.name', // display the 'name' attribute of the 'category' relation //显示与category相关的name
- 'content:html', // display the 'content' attribute as purified HTML 显示净化过的HTML格式
- array( // display 'create_time' using an expression
- 'name'=>'create_time',
- 'value'=>'date("M j, Y", $data->create_time)',
- ),
- array( // display 'author.username' using an expression
- 'name'=>'authorName',
- 'value'=>'$data->author->username',
- ),
- array( // display a column with "view", "update" and "delete" buttons
- 'class'=>'CButtonColumn',
- ),
- ),
- 'filter'=>$model,//对用户的输入进行过滤
- ));
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个用法的更多相关文章
- Yii widget使用
关于widgets,他们在yii中的关系如下 system.web.widgets 系统自带最基本的widget zii.widgets 是基本扩展 zii.widgets.grid 是基本扩展的重要 ...
- yii框架中使用gii的用法
首先在config文件中的 main-local.php中添加一句 'allowedIPs' => ['*'],如下图所示:
- Yii使用笔记 2
yii中的 getId等函数, id更多的是一个 string, 而不是数字. CCaptchaAction > CAction > CComponent. 实现是 IAction. yi ...
- yii2开发后记
h2:first-child, body>h1:first-child, body>h1:first-child+h2, body>h3:first-child, body>h ...
- [moka同学摘录]Yii2.0开发初学者必看
想要了解更多YII,PHP方面内容,请关注本博客. 基础总结 1.修改默认控制器/方法 yii默认是site控制器,可以在web.php中设置$config中的'defaultRoute'='xxxx ...
- Android控件篇
Android中提供了丰富的UI空间.为了最大限度地发挥平台的性能.每个开发人员必须熟练掌握UI控件尤其是经常使用的UI控件.并能依据须要呈现的内容选择最恰当的控件. Android提供了XML配置和 ...
- Android-Widget桌面小组件
1, 掌握Widget的用:Widget的用途,能够添加到手机桌面的程序 2, Widget的特点和用法步骤: 特点:快捷,方便,个性化,可自定义功能,可及时控制更新Widget显示内容 3, 用法步 ...
- Yii中的CCheckBoxColumn在widget中的用法
'columns'=>array( array( 'class'=>'CCheckBoxColumn', 'id'=>'us ...
- yii accessRules用法
访问控制过滤器(Access Control Filter)访问控制过滤器是检查当前用户是否能执行访问的controller action的初步授权模式. 这种授权模式基于用户名,客户IP地址和访问类 ...
随机推荐
- 微服务的一种开源实现方式——dubbo+zookeeper
转自: http://blog.csdn.NET/zhdd99/article/details/52263609 微服务架构成了当下的技术热点,实现微服务是要付出很大成本的,但也许是因为微服务的优点太 ...
- DDX DDV 用法
DDX:Dialog Data Exchange 如果使用DDX机制,一般会在OnInitDialog消息处理函数或Dialog构造函数中,为对话框对象的成员变量设置了初始值.在对话框显示前,框架的D ...
- 让System.Drawing.Bitmap可以在linux运行
.net core的bitmap使用的是以下类库,但无法在linux运行 https://github.com/CoreCompat/CoreCompat 在linux运行需要安装runtime.li ...
- Spring Boot 集成 JWT 实现单点登录授权
使用步骤如下:1. 添加Gradle依赖: dependencies { implementation 'com.auth0:java-jwt:3.3.0' implementation('org.s ...
- C语言中的DEBUG
#cat aa.c #include <stdio.h> #include <stdarg.h> #include <stdlib.h> #include < ...
- Getmemory问题
题目一: [cpp] view plaincopy void GetMemory( char *p ) { p = ( ); } void Test( void ) { char *str = NUL ...
- Sort HDU5884(二分+多叉哈夫曼树)
HDU5884 Sort 题意:有n个序列要进行归并,每次归并的代价是两个序列的长度的和,要求最终的代价不能超过规定的T,求在此前提下一次能同时进行归并的序列的个数k. 思路:还是太单纯,看完题目一直 ...
- C写的AES(ECB/PKCS5Padding)
摘自POLARSSL #pragma once #define AES_ENCRYPT 1 #define AES_DECRYPT 0 struct aes_context { int nr; /*! ...
- Java基础学习总结(24)——Java单元测试之JUnit4详解
Java单元测试之JUnit4详解 与JUnit3不同,JUnit4通过注解的方式来识别测试方法.目前支持的主要注解有: @BeforeClass 全局只会执行一次,而且是第一个运行 @Before ...
- 清北学堂模拟赛d6t2 刀塔
分析:看到最小值最大就很显然是二分了吧,二分一下最小值,把小于它的数给删掉,然后看每个数向左边能延伸多长,往右边能延伸多长,最后统计一下有没有可行答案就可以了. #include <cstdio ...