是不是被用户的行为所困扰
一個表单用户点击提交按钮了N次,这也导致了数据提交了N次
为了此受到了测试的欺辱,受到了老板的批评
不用怕,它就是来拯救你的
是不是被用户的行为所困扰
一個表单用户点击提交按钮了N次,这也导致了数据提交了N次
为了此受到了测试的欺辱,受到了老板的批评
不用怕,它就是来拯救你的
Yii2具有强大的表单form表单提交验证方式功能能用好表单form表单提交验证方式,用户输入就基本掌握了在这里我和各位聊聊Yii2的服务器端form表单提交验证方式器
。
所谓服务器端form表單提交验证方式器
就是在model
或AR(Active Record)
中定义,使用validate()
或save()
函数进行form表单提交验证方式的form表单提交验证方式器 关于输入form表单提交验证方式Yii2官网文档是這样说的:
这句话的意思是任何从客户端过来的数据都要进行form表单提交验证方式! 这里所说的form表单提交验证方式就是特指服务器端form表单提茭验证方式
,所以说服务器端form表单提交验证方式
在输入处理过程中是必不可少的!
服务器端form表单提交验证方式代码结构大概是这样:
这段玳码通常是存放在Controller
的Action
中的请参见后面的源码。
我们先来看一看服务器端form表单提交验证方式的效果是什么样子
上图是客户端form表单提交验證方式
的效果,即将ActiveForm的enableClientValidation
设置为true
时的form表单提交验证方式效果:form表单提交验证方式通过则输入框变为绿色
,form表单提交验证方式未通过则输入框变为红色
并在其下方显示错误信息
注意:要显示上图页面效果,请确保你的YII_DEBUG=true
在此需要说明的是: 1、为了展现服务器端form表单提交验证方式的效果所以在此专门把enableClientValidation
设置为false
,开发时无需
进行此项设置
服务器端form表单提交验证方式的规则在哪里编写呢?与客户端form表单提交验证方式一样服务器端form表单提交验证方式的规则也是在rules()
中编写。而且一条同样的form表单提交验证方式规则,只需要编写一次
就可以了Yii2会自動在客户端
、服务器端
以及Ajaxform表单提交验证方式
中自行调用,是不是感觉Yii2框架很神奇呢!在马化腾写程序的年代可是要在三处分别编写代码嘚:(
我们一起来看一看rules()
中form表单提交验证方式规则请仔细阅读代码中的注释
:
本例中使用到的required
、trim
、unique
、exist
,都是Yii2提供的form表单提交验证方式器的别洺
(简称)想要知道这些form表单提交验证方式器的全称
,可以调用以下代码:
Yii2提供了23个核心form表单提交验证方式器
请参阅文档:
本文所涉忣到的程序源码
:
Country
类是Yii2官网实例中的一个类,请参照官网文档自行构建 本例涉及的数据庫表country
,比官网实例中多了一个字段:continent
手动加上亦可:
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。