Yii中validator之safe用法
程序员文章站
2022-03-25 12:19:14
...
Yii中validator之safe用法
在开始使用yii的时候,一直对校验规则中的safe不是很理解,今天测试了一下,算是搞清楚了safe的内涵。一直以为safe就是框架会对输入的内容进行过滤,比如sql注入之类的filter,其实并不是的,safe or unsafe的不同主要是在于$model->attributes=$_POST['User']; 这种赋值的方式在yii中叫批量复制(Massive Assignment),当model中全部的属性都是safe的时候,表单提交的$_POST['User']的值可以全部赋给$model->attributes,然后再save进入数据库。但是一旦有一个属性没有设置为safe,比如username,当修改了用户名后提交,你会发现用户名的值是没有更新到的,因为username是unsafe的,所以Massive Assignment中无法把新的username的值赋给model。
下面是大师的解释:
safe attributes指的是由用户输入的、需要验证的属性。如果一个属性出现在一个验证规则里,并且该验证规则的适用scenario和model当前的scenario一致,那么该属性就是safe的,可以接受批量赋值。在yii 1.1里,safeAttributes()函数已经取消了。所有的属性都通过验证规则来声明是否safe。
具体可以参看:http://www.yiiframework.com/wiki/161/understanding-safe-validation-rules/
您可能感兴趣的文章
- Yii框架Yiiapp()的理解
- yii框架如何配置默认controller与action
- Yii中的数据库事务的使用方法小结
- Yii framework框架之模块开发分析
- Yii rules常用验证规则备忘
- 将yii对象结果转为数组的方法
- yii 数据库添加,修改,删除相关操作总结
- Yii控制器动作参数绑定处理
推荐阅读
-
YII2.0之Activeform表单组件用法实例
-
yii2.0之GridView自定义按钮和链接用法
-
Android中Spinner控件之键值对用法实例分析
-
php中yii框架实例用法
-
对vue2.0中.vue文件页面跳转之.$router.push的用法详解
-
Python数据分析中Groupby用法之通过字典或Series进行分组的实例
-
JSX用法之将JSX转化成JS代码、JSX中的组件转化成JS形式等操作讲解
-
PHP YII框架开发小技巧之模型(models)中rules自定义验证规则
-
Android应用开发之(TableLayout中stretchColumns、shrinkColumns的用法)
-
jQuery中each的用法之退出循环和结束本次循环