谁一开始就是大神?

大侠给讲解一下,$model->load()与validate()[2.0]

$model->load($post) 还要不要 && $model->validate()一起用?
更新和添加数据的时候有区别吗?
还有 model 里没写rules的时候 load()会不会成功?load()会不会验证rules里的规则?还是要validate()的时候才验证rules?

要一起用,load()只是加载数据,validate()才是验证。
更新和添加都用save(),yii通过$model->isNewRecord 来判断是不是一条新纪录,然后调用insert()或者update()
load()setAttributes()方法都属于批量赋值,yii为了保护数据的安全性,是禁止批量赋值的,但是当数据符合rule规则的时候就可以批量赋值了,所以没写rules就不能用load()。就算某个字段不需要什么规则,用户输入什么都可以,那么要把这个字段的规则设置safe,一般gii生成的model最后一行都是safe的。
你可以不用validate(),因为save方法会先调用validate()再执行insert()或者update()(看源码就知道)。
需要一起用
load填充属性,validate根据rules进行校验
直接看源码就明白了。
借楼问一个问题
model里面规定了必传的字段
但是还有其他的参数是非必传的
这时候 其他的字段就算赋值了也保存不了是什么原因呢?
@大裤叉子 已经回答过了,需在rules里面配置上且属性为safe~~
爬啊爬怕怕!!Mark

赞(0) 打赏
未经允许不得转载:菜鸟之家 » 大侠给讲解一下,$model->load()与validate()[2.0]

评论 抢沙发

登录

找回密码

注册