yii2X版本的请绕行,这里说的是yii 1.1.14版本。某某公司的老程序当中没有考虑csrf攻击,所以不幸中枪了。...如果全局开启会影响到其他ajax请求 可以在控制器当中这样写 Yii::app()->request->enableCsrfValidation = true;//开启csrf Yii::app()->...beginWidget('CActiveForm')的时候 //会生成一个隐藏的input名字是FORM_TOEKN(值就是csrftoken) if($_POST) { try { Yii
检查从声明自 yii\base\Model::rules() 方法的众多规则中所挑选出的适用于当前yii\base\Model::scenario的规则, 从而确定出需要验证哪些规则。...function rules() { $rules = parent::rules(); unset($rules['password']); return $rules; } 自定义错误信息...验证事件 当调用 yii\base\Model::validate() 方法的过程里,它同时会调用两个特殊的方法, 把它们重写掉可以实现自定义验证过程的目的: yii\base\Model::beforeValidate...你也可以通过配置yii\validators\Validator::isEmpty() 属性来自定义空值的判定规则。...自定义的验证器可以是行内验证器,也可以是独立验证器。 行内验证器(Inline Validators) 行内验证器是一种以模型方法或匿名函数的形式定义的验证器。
php $js = <<<JS $("#button").click(function(e){ if(验证规则){ $("form#{$model->formName()}").submit();...php /** * User: yiqing * Date: 14-9-15 * Time: 下午12:09 */ namespace common\widgets; use yii\web\View...; use yii\widgets\Block ; class JsBlock extends Block{ /** * @var null */ public $key = null; /*...> $(function () { jQuery('form#apitool').on('beforeValidate', function (e) { if(验证规则){ //不用执行什么操作
required : 必须值验证属性 [['字段名'],required,'requiredValue'=>'必填值','message'=>'提示信息']; #说明:CRequiredValidator...email : 邮箱验证 ['email', 'email']; #说明:CEmailValidator的别名,确保了特性的值是一个有效的电邮地址....match : 正则验证 [['字段名'],match,'pattern'=>'正则表达式','message'=>'提示信息']; [['字段名'],match,'not'=>ture,'...captcha : 验证码 ['verificationCode', 'captcha']; #说明:CCaptchaValidator 的别名,确保了特性的值等于 CAPTCHA 显示出来的验证码.
php namespace frontend\models; use yii\base\Model; class LoginForm extends Model { public $captcha;...php namespace frontend\controllers; use Yii; use frontend\models\LoginForm; class IndexController extends...\yii\web\Controller { public function actionSite() { $model=new LoginForm(); return $this->render...php $form=\yii\bootstrap\ActiveForm::begin(); ?> yii\bootstrap\Html::submitButton("登录")?> yii\bootstrap\ActiveForm::end();?>
1.新增公共配置文件(common/config/main-local.php) 'log' => [ 'traceLevel' => YII_DEBUG ?...3 : 0, 'targets' => [ [ 'class' => 'yii\log\FileTarget', 'logFile...->andWhere(['area.district_id' => $district_id]); } $list = $query->all(); Yii
1、写一个自定义的类,放到任意目录,如下: <?...static function write($str){ echo $str; } } 2、找到 common/config/bootstrap.php(高级版yii2...) 并添加如下内容: Yii::setAlias('@tk', dirname(dirname(__DIR__)) .
当然啦,废话说在前头,咱们的重点喃,是要利用ActiveForm,然后怎么去实现自定义验证规则。...[["B"], "requiredByASpecial"], ]; } 然后在该model里面去实现requiredByASpecial方法即可 /** * 自定义验证...注意项: 在当前例子中,如果B字段的值为空或者已经在其他验证中失败时,我们自定义的rules规则不会生效。...如果想要自定义的规则始终生效(当然这也是我们想看到的),我们需要设置 [[yii\validators\Validator::skipOnEmpty|skipOnEmpty]] 以及 [[yii\validators...如果你想实现表单失去焦点就对数据进行校验的话,还是建议ActiveForm开启AJax校验吧 注意: 问1、自定义的验证方法requiredByASpecial($attribute, $params)
为了使用模式来验证用户的输入,应该调用 yii\base\Model::validate() 方法。如果验证成功,它返回一个布尔值。...如果有错误发生,可以从 yii\base\Model::$errors 得到它们。...显示出来的验证码....png, jpg,jpeg','minWidth' => 100,'maxWidth' => 1000,'minHeight' => 100,'maxHeight' => 1000,] custom:自定义验证...preg_match($reg, $this->mobile)){ $this->addError('mobile', Yii::t('common','Mobile Is Invalid'));
Rules验证规则: required : 必须值验证属性||CRequiredValidator 的别名, 确保了特性不为空....[['字段名'],required,'requiredValue'=>'必填值','message'=>'提示信息']; email : 邮箱验证||CEmailValidator 的别名,确保了特性的值是一个有效的电邮地址...['email', 'email']; match : 正则验证||CRegularExpressionValidator 的别名, 确保了特性匹配一个正则表达式....['website', 'url', 'defaultScheme' => 'http']; captcha(验证码)||CCaptchaValidator 的别名,确保了特性的值等于 CAPTCHA...显示出来的验证码.
每个属性都可以有多个验证器,如上面的password使用了 required和string两个验证器。 常用验证器: Yii2已经内置了一些常用的验证器。...(yii\validators\FilterValidator) 上传文件验证: file——文件 这个主要是对上传的文件进行验证,如格式、大小等。...(yii\validators\FileValidator) image——图片 这个和上面的file验证器差不多,不过是专门用来验证图片的。...(yii\validators\RequiredValidator) captcha——验证码 这个主要是在界面使用验证码的时候对验证码进行验证的。...(yii\validators\RegularExpressionValidator) 其它: safe——安全 这个不进行验证,仅仅用来指定属性值是安全的。
‘value’=>array($this,’get_type_text’), //调用自定义的函数 ‘htmlOptions’=>array(‘width’=>”90px”), //设置样式 ), array
我在学习Yii2的路上,学习笔记 required : 必须值验证属性 代码如下: [['字段名'],required,'requiredValue'=>'必填值','message'=>'提示信息...email : 邮箱验证 代码如下: ['email', 'email']; #说明:CEmailValidator的别名,确保了特性的值是一个有效的电邮地址....match : 正则验证 [['字段名'],match,'pattern'=>'正则表达式','message'=>'提示信息']; [['字段名'],match,'not'=>ture,'pattern...captcha : 验证码 代码如下: ['verificationCode', 'captcha']; #说明:CCaptchaValidator 的别名,确保了特性的值等于 CAPTCHA 显示出来的验证码
> 'fail']); } } return $this->render('code'); } } 当post 请求 index 方法 验证图片验证码时可以直接这样调用去验证...如果生成图片验证码的控制器和验证图片验证码的不是同一个控制器的话。我本来想这样去实现的,可惜没有实现,后期如果解决了,我会补充到文章里。.../** * 验证 图片验证码 * * @return \yii\web\Response */ public function actionCheckcode1...验证中还有当前图片验证码的存活次数限制。于是我也对ajax验证失败时请求做了相应的处理。.../** * 验证 图片验证码 * * @return \yii\web\Response */ public function actionCheckcode
自定义别名: <?...php namespace frontend\controllers; use Yii; use yii\web\Controller; class RbacController extends Controller...{ public function actionIndex() { Yii::setAlias("@foo", 'http://www.example.com'); var_dump(Yii...{ public function actionIndex() { var_dump(Yii::getAlias("@yii")); var_dump(Yii::getAlias...("@app")); var_dump(Yii::getAlias("@webroot")); var_dump(Yii::getAlias("@web")); var_dump(Yii
在Yii2中提供了密码加密以及验证的一系列方法,方便我们的使用,它使用的是bcrypt算法。查看源码我们可以发现它使用的是PHP函数password_hash()和crypt()生成。...加密: /** * $password 要加密的密码 * $hash 加密后的hash字符串 */ $hash = Yii::$app->...getSecurity()->generatePasswordHash($password); 验证密码: /** * $password 要验证的明文密码 * $hash... 加密后的hash字符串 */ Yii::$app->getSecurity()->validatePassword($password, $hash);
YII 提供的日志写入方法: 1、Yii::getLogger()->log($message, $level, $category = 'application') 2、Yii::trace(...$message, $category = 'application'); 3、Yii::error($message, $category = 'application'); 4、Yii::warning...'log' => [ 'traceLevel' => YII_DEBUG ?...输出日志: Yii::getLogger()->log("开始写自定义日志",Logger::LEVEL_ERROR); Yii::trace("trace,开发调试时候记录"); Yii::error...("error,错误日志"); Yii::warning("warning,警告信息"); Yii::info("info,记录操作提示"); 输出自定义目录日志 // 日志文件在输出目录 @app/
true, 'showScriptName' => false, 'rules' => [ ], ], 打开 common\config\bootstrap.php 添加以下别名 Yii...此处为修改 'api/web/assets', ## 此处为修改 ], 'setExecutable' => [ 'yii...', 'yii_test', ], 'setCookieValidationKey' => [ 'backend/config...此处为修改 'api/web/assets', ## 此处为修改 ], 'setExecutable' => [ 'yii
前面我们讲述了yii2中如何使用modal以及yii2 gridview列表内更新操作如何使用modal的问题,本以为modal要告一段落可以开始新的话题了,但是实际问题往往超乎想像,这不modal弹窗提交的表单说是怎么验证的问题又出来了...yii2中,ActiveForm默认做了客户端验证,但是表单的提交,却不是无刷新的。也就是常常看到的表单提交后页面会刷新。...这往往不是我们想要的,此时就需要给validateUrl设置一个路由地址,其所要请求的操作的意义就在于异步做验证!..._modal_activeform_ajax.html // 看主要的验证操作,该操作是表单字段失去焦点时异步验证,同时如果直接提交表单,也会先执行该操作进行验证 public function actionValidateForm...($model); } 如此一来就简单的实现了yii2异步无刷新表单验证了!
前面我们讲述了yii2中如何使用modal以及yii2 gridview列表内更新操作如何使用modal的问题,本以为modal要告一段落可以开始新的话题了,但是实际问题往往超乎想像,这不modal弹窗提交的表单说是怎么验证的问题又出来了...yii2中,ActiveForm默认做了客户端验证,但是表单的提交,却不是无刷新的。也就是常常看到的表单提交后页面会刷新。...这往往不是我们想要的,此时就需要给validateUrl设置一个路由地址,其所要请求的操作的意义就在于异步做验证!..._modal_activeform_ajax.html // 看主要的验证操作,该操作是表单字段失去焦点时异步验证,同时如果直接提交表单,也会先执行该操作进行验证 public function actionValidateForm...如此一来就简单的实现了yii2异步无刷新表单验证了!
领取专属 10元无门槛券
手把手带您无忧上云