Yii框架2.0的视图和widgets表单的使用
2.0的控制器的创建和action方法的添加和1.0的基本是一样的。但我发现他的widgets 的ActiveForm和1.1版本有些不一样的地方。
对于视图基本也是一样的,有render 和 renderPartial两个方法,后一个不会调入布局。也不会自动调入jquery组件,但在设置布局上有些不一样:
1.1是在components\Controller.php里面有个$layout 的变量,通过修改这个变量的值来改变布局的。
2.0里面是没有通过在父类Controller里面配置的,有个findLayoutFile的方法,这里分析了各种情况,默认是采用的main,当然也可以像1.1那样直接写在父类里面还可以写在配置文件web.php里,'layout' => 'mine', 还可以同 layoutPath 设置布局文件的路径,如果有个别情况需要用自己的布局,可以在他的控制器里修改 $this->layout = 'mine',这样就会调用layout目录下的mine.php布局。
可以获取前台访问的路径。
$baseUrl = Yii::$app->request->baseUrl 来获取当前脚本的目录,因为此框架是单入口模式,所以就是根目录。
其中 1.1版本的时候是用 Yii::app() 来获取当前Yii实例的,2.0版本采用的事 Yii::$app 来获取当前实例。
首先是获取对象:
2.0版本里是这样的 $form = ActiveForm::begin(); 而且要使用 use yii\widgets\ActiveForm;
1.1版本里是 $form = $this->beginWidget('CActiveForm')。
我在2.0版本里的widgets目录下没有找到CActiveForm.php 只有ActiveForm.php 文件。
其次是获取 表单里的对象也不一样了,比如文本框,
2.0里面是这样的 $form->field($LoginForm, 'name', ['id'=>'name']);
1.1里面是这样的 $form->textField($loginForm, 'name', array('id'=>'name'));
看官方文档的时候发现不仅仅可以用ActiveForm可以创建form里面的元素,yii\helpers\Html 也可以创建,例如例子里就有个submit按钮就是用Html创建的。
Html::submitButton('提交', ['class'=>'btn btn-primary']);
比如要建个input 加入自己的属性的话 需要调用 textInput方法。例如。
<?php echo $form->field($model, 'username')->textInput(['id'=>'userName']); ?>
文本框:textInput(); 密码框:passwordInput(); 单选框:radio(),radioList(); 复选框:checkbox(),checkboxList(); 下拉框:dropDownList(); 隐藏域:hiddenInput(); 文本域:textarea(['rows'=>3]); 文件上传:fileInput(); 提交按钮:submitButton(); 重置按钮:resetButtun();<?php $form = ActiveForm::begin(['action' => ['test/getpost'],'method'=>'post',]); ?><? echo $form->field($model, 'username')->textInput(['maxlength' => 20]) ?><? echo $form->field($model, 'password')->passwordInput(['maxlength' => 20]) ?><? echo $form->field($model, 'sex')->radioList(['1'=>'男','0'=>'女']) ?><? echo $form->field($model, 'edu')->dropDownList(['1'=>'大学','2'=>'高中','3'=>'初中'], ['prompt'=>'请选择','style'=>'width:120px']) ?><? echo $form->field($model, 'file')->fileInput() ?><? echo $form->field($model, 'hobby')->checkboxList(['0'=>'篮球','1'=>'足球','2'=>'羽毛球','3'=>'乒乓球']) ?><? echo $form->field($model, 'info')->textarea(['rows'=>3]) ?><? echo $form->field($model, 'userid')->hiddenInput(['value'=>3]) ?><? echo Html::submitButton('提交', ['class'=>'btn btn-primary','name' =>'submit-button']) ?><? echo Html::resetButton('重置', ['class'=>'btn btn-primary','name' =>'submit-button']) ?><?php ActiveForm::end(); ?>
但是它除了input 等标签外还会附加很多其他的标签,比如在外面套了一层div之类的。要想只要input标签,就要使用yii\helpers\Html的active系列函数生成表单。
<?php $form = ActiveForm::begin(); ?><?php echo Html::activeTextInput($model, 'username', ['id'=>'userName']); ?><?php echo Html::activePasswordInput($model, 'password', ['id'=>'psd']); ?><?php echo Html::activeTextInput($model, 'captcha', ['id'=>'verify']); ?><?php echo Html::submitInput('', ['id'=>'sub']) ?><?php ActiveForm::end();?>
转载于:https://www.cnblogs.com/wayne173/p/4369303.html
Yii框架2.0的视图和widgets表单的使用相关推荐
- Yii框架2.0中文权威指南 - 在线手册发布
介绍: Yii框架2.0中文权威指南 由 小蘿蔔丁 创办,本指南发布遵循 Yii 文档使用许可 . 旨在分享Yii框架2.0中文开发文档,方便在使用Yii框架2.0的程序猿.共同学习,共同进步. Yi ...
- odoo10参考系列--视图二(表单视图)
表单视图 表单视图用于从单个记录中显示数据.它们的根元素是<form>.它们由常规HTML组成,具有额外的结构和语义组件. 结构组件 结构组件提供了结构化的或很小逻辑的"视觉&q ...
- form表单中根据值判断是否disabled_Java 0基础入门 (Html表单、表单元素)
上一篇:Java 0基础入门 (Html标签的使用) 表单在网页中主要负责数据采集功能. 一.表单实际应用场景 百度搜索 5173注册 如上两张图,图中的黑色线条是我画上去的,如果按照黑线,在Excl ...
- 一步步学习微软InfoPath2010和SP2010--第五章节--添加逻辑和规则到表单(6)--使用规则创建多视图样式向导表单
本例中,你将处理表单,目的是捕获来自Blue Yonder员工的支持请求.这些请求需要SharePoint记录管理网站支持文档储存请求.这个表单基本完成了,你只需增加一些剩余的规则来完结它.通过添加最 ...
- Yii需要php版本,yii框架2.0.9版本发布了
2.0.9版本是yii 2.0版本的次发布版,它包含了60多个新的小功能和一些bug修复. 有两个小改动可能会影响你现有的程序,所以检查一下 UPGRADE.md 文件 在这里由衷的感谢我们的yii社 ...
- form表单如何加css框架,如何写好CSS系列之表单(form)
表单模块可以分为两部分:一是表单的布局,也就是规范表单元素单元的排列位置:二是表单元素,如:输入框.单选.复选.列表组件.搜索组件等,由于列表组件.搜索组件不是单纯的css组件,所以暂且没有实现. 一 ...
- php+yii框架,php配置yii框架(转)
yii具有很多当今web2.0开发所需要的特性.下边是一个简短列表. ? MVC设计模式 :yii在WEB设计中采用经过验证的技术,可以较好的把显示与逻辑分离. DAO,活动记录:yii充许在对象方面 ...
- vue3使用的移动端UI框架,vue3.0 ui组件库
vue 3.0 项目中 element-ui form 表单元素中 仅 el-button 显示,其他不显示,如何解决? 谷歌人工智能写作项目:小发猫 在页面中引用了laydate插件,在显示的时候, ...
- abap视图字段限制_在 Laravel 控制器中进行表单请求字段验证
在 Web 应用中,用户提交的数据往往是不可预测的,因此一个非常常见的需求是对用户提交的表单请求进行验证,以确保用户输入的是我们所期望的数据格式.很多 Web 框架都对此功能专门提供了工具集,Lara ...
最新文章
- 十个 Linux 新手管理员易犯错误
- Activit流程部署、删除
- 进程、线程、多线程、并发、并行学习记录
- CSS中的BFC机制
- PHP二开 三语言( 中文、英语、马来语) 自动抢单系统源码
- 浅谈Java中的各种锁
- 带你掌握不同平台下,探索JDK源码所需的native方法
- 语音识别怎么最终识别出字?
- 阶段3 1.Mybatis_11.Mybatis的缓存_7 触发清空一级缓存的情况
- python中的snip用法_Ubuntu系统中安装SNIP
- 无捆绑绿色安装金山打字通教程
- 微信小程序弹窗(提示框和确认框)
- 几款优秀的文档管理系统
- 【报告分享】2021年中国智能运动健身行业研究报告-艾瑞咨询(附下载)
- DCL(数据控制语言)和TCL(事务控制语言)
- Apache ShardingSphere 企业行|走进中商惠民
- 有关B2C制造业电商企业的数字化转型思考
- L2-4 彩虹瓶 (25 分)-2019天梯赛全国总决赛
- 高通平台开发系列讲解(外设篇)BMI160介绍
- 网站内容与推广原来是这么回事
热门文章
- 数据类型,运算符和表达式03 - 零基础入门学习C语言04
- cache老化时间的思考--以nat为例
- 搜索插件(django-haystack)
- koa+mysql+vue+socket.io全栈开发之web api篇
- Python面向对象基础:设置对象属性
- 【区间DP】释放囚犯
- python3使用requests模块完成get/post/代理/自定义header/自定义Cookie
- 【VS开发】【DSP开发】WinDriver简介(或介绍)
- C#通过WMI的wind32 的API函数实现msinfo32的本地和远程计算机的系统摘要信息查看功能...
- iOS开发学无止境 - UICollectionView自定义布局之风火轮[译]