1.简单了解Yii框架 Yii Framework是一个基于组件、用于开发大型 Web 应用的高性能 PHP 框架。Yii提供了今日Web 2.0应用开发所需要的几乎一切功能。...模型-视图-控制器(MVC)设计模式:Yii在WEB编程中采用这一成熟的技术从而可以更好的将逻辑层和表现层分开。...数据库访问对象(DAO)和Active Record:Yii允许开发者模型数据库中的数据对象,从而减少他们在写很长和重复的SQL语句上的精力。...与jQuery整合:作为最流行的JavaScript框架之一,jQuery可以编写高效而灵活的JavaScript接口。 表单输入和验证:YII使得收集表单输入非常容易和安全。...缓存的存储介质,可以轻松地更改而不触及应用程序代码。 错误处理和日志记录:错误的处理很好的呈现出来,日志信息可以分类,过滤并分配到不同的位置。
//不填的话,默认0,这样不会报错(此种情况是数据库为非必填字段,但实际不填的时候要求填写) ['home_sort', 'default', 'value' => '0'], //'integerOnly...这样这些错误就能在之后的操作中,被读取并展现给终端用户。...你只需要用 yii\widgets\ActiveForm 的方式构建 HTML 表单即可。...> 幕后的运作过程是这样的:yii\widgets\ActiveForm 会读取声明在模型类中的验证规则, 并生成那些支持支持客户端验证的验证器所需的 JavaScript 代码。...在这段 JavaScript 代码中,你可以使用以下预定义的变量: attribute:正在被验证的模型特性的名称。 value:进行验证的值。
实现三个文本域的内容提交之后显示在表格中,代码直接用文本文件运行,记得后缀改为.html 运行结果 输入123,并点击提交按钮之后,数据就会显示在下面的表格中,有什么问题可以私聊我。...下面是代码 function chk() { setTimeout("chk()",100); text1.innerHTML =
firebox) 3是firefox在拖动的时候会打开一个新窗口 (firbox) 4是ie11不支持onclick属性方法 ; ie11 里元素对象的attributes的排序和其他浏览器不同, ie11 中...remove()方法不work (ie) 对于原因1的解决方案 其中IE11 压根就不支持path属性,firefox和Safari还勉强通过hack的方式获取到path,获取方式如下: const...addEventListener('click', function () {}) 如果你的业务代码里包含 获取对象attributes的值的代码,比如 event.target.attributes[n].xxx 在ie11中attributes...解决这个问题 ,我是通过遍历attributes 找到符合我要的代替之前的写死的attributes顺序 针对ie11 remove()不work的情况,可以用代码 parent.removeChild
在 GridView 小部件是从数据提供者获取数据,并以一个表格的形式呈现数据。表中的每一行代表一个单独的数据项,列表示该项目的属性。...在 DataGrid 小部件中的列是在 yii\grid\Column 类中进行配置的。它代表一个模型属性,并可以进行过滤和排序。 GridView 列显示常用操作 <?...grid\CheckboxColumn", "name" => "id", ], 'id', 'name', ], ]); echo Html::a("批量删除", "javascript...> GridView(搜索)数据筛选 要筛选数据,表格视图需要一个模型从过滤的表单取得输入数据,并调整 dataprovider 的查询语句到期望的搜索条件。...$dataProvider = new ActiveDataProvider([ 'query' => $query, ]); // 加载搜索表单数据并验证
操作的创建和使用已经在说一声你好小节中解释了。 <?...如果没填表单就提交,或数据包含错误(译者:如 email 格式不对), entry 视图将会渲染输出,连同表单一起输出的还有验证错误的详细信息。...数据首先由客户端 JavaScript 脚本验证,然后才会提交给服务器通过 PHP 验证。...yii\widgets\ActiveForm 足够智能到把你在 EntryForm 模型中声明的验证规则转化成客户端 JavaScript 脚本去执行验证。...输入框的文字标签是 field() 方法生成的,内容就是模型中该数据的属性名。 例如模型中的 name 属性生成的标签就是 Name。 你可以在视图中自定义标签 按如下方法: <?
Date(arr[0], arr[1]-1, arr[2], arr[3], arr[4], arr[5]); document.write(date); 终于可以兼容所有浏览器咯,结论: iPhone中的...safari无法解释 YYYY-MM-DD HH:mm:ss 或者YYYY/MM/DD HH:mm:ss这样的时间格式,而谷歌火狐等浏览器对这样的格式做了扩展, iPhone中的safari所支持的格式为
前面我们讲述了yii2中如何使用modal以及yii2 gridview列表内更新操作如何使用modal的问题,本以为modal要告一段落可以开始新的话题了,但是实际问题往往超乎想像,这不modal弹窗提交的表单说是怎么验证的问题又出来了...yii2中,ActiveForm默认做了客户端验证,但是表单的提交,却不是无刷新的。也就是常常看到的表单提交后页面会刷新。...如果你不设置该参数,该地址默认是你当前路由,而又恰巧你当前路由就是表单form的action,你会很好奇的发现,当表单项input失去焦点的时候,你对数据的修改已经提交到后端进行了处理了?...如此一来就简单的实现了yii2异步无刷新表单验证了!...[考虑目前国内网站大部分采集文章十分频繁,更有甚者不注明原文出处,原作者更希望看客们查看原文,以防有任何问题不能更新所有文章,避免误导!]
前面我们讲述了yii2中如何使用modal以及yii2 gridview列表内更新操作如何使用modal的问题,本以为modal要告一段落可以开始新的话题了,但是实际问题往往超乎想像,这不modal弹窗提交的表单说是怎么验证的问题又出来了...yii2中,ActiveForm默认做了客户端验证,但是表单的提交,却不是无刷新的。也就是常常看到的表单提交后页面会刷新。...如果你不设置该参数,该地址默认是你当前路由,而又恰巧你当前路由就是表单form的action,你会很好奇的发现,当表单项input失去焦点的时候,你对数据的修改已经提交到后端进行了处理了?...我们看具体实现: //表单提交操作,基本上不需要做改动 if ($model->load(Yii::$app->request->post()) && $model->save()) {...($model); } 如此一来就简单的实现了yii2异步无刷新表单验证了!
例如如下代码使用yii\widgets\ActiveForm小部件生成一个登录表单, 小部件会在begin() 和0 end()执行处分别生成<form 的开始标签和结束标签, 中间的任何代码也会被渲染...因此,当调用 yii\base\Widget::begin() 和 yii\base\Widget::end() 时,最好在同一个视图文件里。 不遵循这个规则可能会导致意外的输出。...); 详见 依赖注入容器 “实践中的应用” 一节 。...如下代码中HelloWidget编码并显示赋给message 属性的值, 如果属性没有被赋值,默认会显示”Hello World”。...但是当小部件需要外部资源如CSS, JavaScript, 图片等会比较棘手, 幸运的时候Yii提供 资源包 来解决这个问题。
本文实例讲述了YII2框架实现表单中上传单个文件的方法。分享给大家供大家参考,具体如下: 有些时候我们提交的表单中含有文件。怎么样让表单里的数据和文件一起提交。...php use yii\helpers\Url; ? <!...message' = '请上传头像'], ]; } //上传头像 public function uploadHeadImg() { //'head_img'这个字符串必须跟你表单中...,默认YII的ActiveForm创建的表单元素会加上下标 $user- load($data, ''); if ($user- validate()) { $...(); //这里保存时设为false不验证,因为pwd加密了 $user- save(false); } else { var_dump($
5.布局模式 yii会默认开启布局模式,其布局模板为view中的layout中的main.php,我们可以在veder/yiisoft/yii2/web/controller.php基础类中public...标签设置 在处理表单时,多用$model->attributes属性来表示全部的属性。...其中attributeLabels方法return一个数组用来表示视图层中ActiveForm产生的各个表单项的label标签 7.引用JS/CSS文件 yii中的view也使用面向对象方式 ,所以引入...13.使用ActiveForm创建表单 yii2中使用小部件创建view视图的步骤: 设置一个Model设置其属性 public $username; public $password; 设置其rule... var key="" 然后在JS文件中正常使用。
> 所有被包裹在Pjax widget中的a标签和form都会发送一个Pjax请求....:Demo,示例中Pjax包裹一个Form表单,里边有一个输入框和提交按钮以及下边的响应数据。...- 注意:Form表单必须添加 data-pjax <?...,整个页面刷新会跳转页面的问题 pjax中的局部刷新中,改变了地址栏中的url改变了,当整个页面刷新时,整个页面跳转了,有没有什么好的解决办法,求具体代码?...Pjax::begin(['id' => 'admin-crud-id', 'timeout' => false]);这样不设置超时,或者给个比较大的值应该可以解决问题。
本文实例讲述了YII2框架中验证码的简单使用方法。分享给大家供大家参考,具体如下: 验证码的使用是比较频繁的。YII2中已经帮我们做好了封装。...php use yii\helpers\Url; use yii\helpers\Html; ? <!...<script type="text/<em>javascript</em>" $(function () { //处理点击刷新验证码 $("#verifyImg").on("click...上面控制器中验证码的验证方式是我们手动的。我们也可以创建一个模型配置rules()来自动完成。 <?...php namespace app\models; use yii\base\Model; class VerifyForm extends Model { //变量名为你表单中输入验证码控件的
Yii2 中的CSRF配置 Yii2 默认是启用CSRF令牌验证 配置在main.php中: 'components' => [ 'request' => [ /...POST提交的数据就会进行验证,在表单中添加CSRF有两种方法 1....使用Yii挂件生成html 这样会自动生成带有隐藏表单的_csrf <?...手动添加_csrf 在form表单中手动添加隐藏表单,也适用于ajax的手动添加_csrf <input type="hidden" value="<?..._csrf 是<em>Yii</em>自动生成,不存在字符串<em>不</em>匹配 后来找到问题: render的时候使用了exit, 应使用return *注: render 时也不能用echo 或 die() 解决办法: return
Controller name和action name(在控制器里面使用) echo $this- id; echo $this- action- id; 控制器获取当前模块 $this- module- id 不生成...VarDumper::dump($var); // 使用2 第二个参数是数组的深度 第三个参数是是否显示代码高亮(默认不显示) VarDumper::dump($var, 10 ,true);die; 表单验证...如果 select(‘title’) 不写的话,生成 SQL 是: `SELECT * FROM `post` WHERE `user_id`=1` 直接输出 id 的值 表单验证,去除首尾空格: public...host信息 Yii::$app- request- getHostInfo() 获取url中的路径信息(不包含host和参数): Yii::$app- request- getPathInfo() 获取不包含...r=news&id=1 Yii::$app- request- url 或者 Yii::$app- request- requestUri 只想获取url中的参数部分 # r=news&id=1 Yii
yii2的一个强大之处之一就是他的Form组件,既方便又安全。有些小伙伴感觉用yii一段时间了,好嘛,除了比tp"难懂"好像啥都没有。...领导安排搞一个注册的功能,这家伙刷刷刷的又是百度啥啥啥好的表单样式,又是百度啥啥啥validate验证,真替这家伙捏把汗。...先来说说场景: 条件:①、有两个字段分别是A和B ②、A有两个值分别是1和2 需求是:当用户选择的A的值等于1的时候,B的值必须填写,当A的值等于2的时候,B的值不写也没关系。其中A必选。...注意项: 在当前例子中,如果B字段的值为空或者已经在其他验证中失败时,我们自定义的rules规则不会生效。...' => ['id' => 1]],该值会被传递到自定义方法中。
作为自己的周总结,平时遇到的问题,以及一不小心踩的坑,记录下来自己当复习: 表单验证 表单验证,两个参数中至少需要一个(2个以上): public function rules() {...attribute, 'card_id/card_code至少要填一个'); } }, 'skipOnEmpty' => false], ]; } 表单验证...获取url中的host信息: # http://localhost Yii::$app->request->getHostInfo() 获取url中的路径信息(不包含host和参数): Yii...::$app->request->getPathInfo() 获取不包含host信息的url(含参数): # /public/index.php?...Yii::app()->request->url 只想获取url中的参数部分: # r=news&id=1 Yii::$app->getRequest()->queryString 获取某个参数的值
过滤器位置.png 定义过滤器 在Yii2中,自定义过滤器,需要继承 yii\base\ActionFilter 类并覆盖 yii\base\ActionFilter::beforeAction() 和...创建模型.png 创建控制器,实例化表单模型和渲染视图 ? 创建控制器.png 视图中使用ActiveForm创建表单元素 ? 创建元素表单.png 在控制器中接收表单数据并绑定数据到表单模型 ?...表单模型.png 注意:要调用上传功能,需要打开 php_fileinfo 扩展 uploads目录应该在入口文件同级目录 多文件上传 Yii2支持多文件上传,只需要在上面的例子中加入一些小的修改即可...验证码 Yii2中的验证码是通过扩展的操作来实现的,叫做 yii\captcha\CaptchaAction 只需要将它绑定到actions中就可以直接访问,无需任何更改: ?...中,不需要自己去写验证,直接在表单模型的 rules 中调用 captcha 验证就可以了 ['verifyCode','captcha'], 数据分页 Yii2也提供了类似于TP的数据分页类:
本文实例讲述了Yii2框架自定义验证规则操作。...废话不多说直接上代码 class AbcModel extends Model { public $aaa; public $bbb; public $bbb; /** * 验证提交的form表单...这两个值是在yii\validators类中,主要作用分别是: $skipOnError:跳过错误信息,意思就是如果有错误信息存在也会跳过 $skipOnEmpty:跳过值为空的属性,就算是该属性需要验证...,也会跳过不验证。...yii中实例controller是利用反射机制实例化的 在yii2\vendor\yiisoft\yii2\di\Container.php文件中
领取专属 10元无门槛券
手把手带您无忧上云