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();?>

Yii框架2.0的视图和widgets表单的使用的更多相关文章

  1. Yii框架2.0的安装过程

    Yii框架是个不错的php开发框架,大型项目上都可以使用.和大多框架一样他也是开源,而且采用了mvc结构的. Yii1.*,直接下载然后用脚步可以创建自己的项目了,最近看了下Yii2.0版本的,他推荐 ...

  2. Bootstrap3.0学习第六轮(表单)

    Bootstrap3.0学习第六轮(表单) 前言 阅读之前您也可以到Bootstrap3.0入门学习系列导航中进行查看http://www.cnblogs.com/aehyok/p/3404867.h ...

  3. Yii框架2.0的小部件

    小部件是视图里的可重用单元. 小部件是在视图中使用的,但是可能需要使用控制器传给他的模型,比如在渲染表单的时候.比如一般的时间拾取器就可以直接砸视图里加入如下代码就可以: <?php use y ...

  4. Yii框架2.0的模型

    模型是 MVC 模式中的一部分, 是代表业务数据.规则和逻辑的对象. 可通过继承 [[yii\base\Model]] 或它的子类定义模型类,基类[[yii\base\Model]]支持许多实用的特性 ...

  5. Yii框架怎么寻找对应视图

    render()内容; public function render($view,$data=null,$return=false) { if($this->beforeRender($view ...

  6. Yii框架2.0的Gii

    Yii框架的Gii在我看来算是个快速创建器,当然对于学习来说意义不大,但对于已经懂得他的原理并用他开发的话,就是个快速开发的好工具. 他能快速的创建控制器,模块,crup,插件,Module. 打开g ...

  7. SSM框架中如何简便上传文件表单

    此种方式上传文件相对简单,以下均经测试成功,才提供到此. 以下为单个文件上传方式 分析:本次的工作目的是根据一级标题产生对应的二级标题,在每个二级标题下对应一个(file字段)新闻文件,当点击新闻文件 ...

  8. web框架-(六)Django补充---form表单验证

    一.form表单验证 1. 常规html页面的form表单验证 常规页面中,如果想实现对表单中用户输入信息的数据验证,需要配合Ajax来实现. 使用前我们先来熟悉下函数参数:request,其中包含的 ...

  9. Java框架之SpringMVC 04-视图解析-Spring表单-JSON-上传下载

    SpringMVC 视图解析 请求处理方法(controller方法)执行完成后,最终返回一个 ModelAndView 对象,即使出现异常也会返回一个 ModelAndView 对象.对于那些返回 ...

随机推荐

  1. xadmin 安装详解

    1.安装必要的包 django>=1.9.0 django-crispy-forms>=1.6.0 django-import-export>=0.5.1 django-revers ...

  2. Shell脚本中调用另外一个脚本的方法

    (转载): 在Linux平台上开发,经常会在console(控制台)上执行另外一个脚本文件,经常用的方法有:./my.sh 或 source my.sh 或 . my.sh:这三种方法有什么不同呢?我 ...

  3. Bootstrap学习笔记(5)--实现Bootstrap导航条可点击和鼠标悬停显示下拉菜单

    实现Bootstrap导航条可点击和鼠标悬停显示下拉菜单 微笑的鱼 2014-01-03 Bootstrap 5,281 次围观 11条评论 使用Bootstrap导航条组件时,如果你的导航条带有下拉 ...

  4. Cookie js 操作

    从事web开发也有些日子了,cookie 是个啥差不多能说明白,可是实际自己一上手操作就是得去搜索(你们懂的),结果被鄙视了...所以就写一篇博文做为自己的学习笔记,嘿嘿,博客的好处在此体现出来了. ...

  5. CRC16

    http://www.stmcu.org/chudonganjin/blog/12-08/230184_515e6.html 1.循环校验码(CRC码): 是数据通信领域中最常用的一种差错校验码,其特 ...

  6. js学习笔记24----焦点事件

    事件: onfous : 元素获取焦点时触发事件 onblur : 元素失去焦点时触发事件 方法: obj.focus(); 可指定元素设置焦点 obj.blur(); 取消指定元素的焦点 obj.s ...

  7. iis 导入和导出配置——iis管理

    首先我们打开服务器管理器,一般服务器都在左下角的任务栏中,直接点击即可打开 2 打开WEB服务器(IIS),选择IIS根目录,找到右边的共享管理 3 打开共享管理后,我们在右侧的操作中找到导出配置,选 ...

  8. TensorFlow基础笔记(4) Tensor Transformation

    https://segmentfault.com/a/1190000008793389 抽取 tf.slice(input_, begin, size, name=None):按照指定的下标范围抽取连 ...

  9. MyBatis 最强大的特性之一就是它的动态语句功能

    MyBatis 最强大的特性之一就是它的动态语句功能.如果您以前有使用JDBC或者类似框架的经历,您就会明白把SQL语句条件连接在一起是多么的痛苦,要确保不能忘记空格或者不要在columns列后面省略 ...

  10. windows2003 iis6.0站点打不开,找不到服务器或 DNS 错误【转】

    最近服务器经常出现打不开网站的现象,有时出现在上午,有时出现在中午,几乎天天都会出现一次,出现问题时,无论是回收程序池还是重启IIS或者关闭其它一些可能有影响的服务,都不能解决问题.网站打不开时,有如 ...