http://www.yiiframework.com/wiki/161/understanding-safe-validation-rules/
在一个AR中,我们通常都需要实现rules()方法。那么我们设置的这些验证规则有什么作用呢?它们又是在什么情况下发挥作用呢?
验证规则的作用
一个模型的验证规则设置有两个目的:
1、确保表单中输入的数据是有效的,符合程序的要求。
2、定义了表单中的哪些数据能够被 多赋值 给模型变量。
解释一下:
1、程序会对用户输入的数据进行验证,确保用户输入的数据格式,是程序所允许的
2、表单中定义的数据域能够和模型中的成员进行多赋值
验证规则发挥作用的时间
1、在进行多赋值的时候,会发挥作用,即目的2.
2、在执行save()方法时,会发挥作用,即目的1.
解释:如果,我需要将表单的数据多赋值给模型,那么我必须在 验证规则中为该模型的属性定义一个验证器,否则
多赋值时,没有设置验证的将不会被赋值。但是,又不能随意定义一个验证器,为什么呢?假如,你需要将该数据保存到数据库中时, 验证器会对数据进行验证,如果,不符合要求,保存将会失败。所以要选择一个合适的验证器。如果,该数据可以为任何的数据,那么我们可以设置验证器 为 safe.