• 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/

     

  • 相关阅读:
    2019春季学期第四周作业
    2019年春季学期第三周作业+预习作业
    2019第一周作业2
    2019第一周作业1
    寒假作业3(抓老鼠啊~亏了还是赚了?)
    nginx负载均衡
    性能优化建议
    数据库主从配置
    php魔术方法
    图片轮播
  • 原文地址:https://www.cnblogs.com/springdong/p/3060481.html
Copyright © 2020-2023  润新知