鸿雁

鸿雁

这家伙有点懒,还没写个性签名!

  • 财富值35
  • 威望值0
  • 总积分105

个人信息

  • 收藏了源码
    慢悠悠地Yii框架源码阅读(1)
  • 关注了
  • 2019-12-17 已签到
    连续签到1天,获得了5个金钱
  • 2019-06-03 已签到
    连续签到1天,获得了5个金钱
  • 2018-02-08 已签到
    连续签到1天,获得了5个金钱
  • 2016-11-25 已签到
    连续签到1天,获得了5个金钱
  • 回复了 的回答

    要一起用,load()只是加载数据,validate()才是验证。
    更新和添加都用save(),yii通过$model->isNewRecord 来判断是不是一条新纪录,然后调用insert()或者update()
    load()setAttributes()方法都属于批量赋值,yii为了保护数据的安全性,是禁止批量赋值的,但是当数据符合rule规则的时候就可以批量赋值了,所以没写rules就不能用load()。就算某个字段不需要什么规则,用户输入什么都可以,那么要把这个字段的规则设置safe,一般gii生成的model最后一行都是safe的。
    你可以不用validate(),因为save方法会先调用validate()再执行insert()或者update()(看源码就知道)。

    当你调用 save()、insert()、update() 这三个方法时,会自动调用yii\base\Model::validate()方法

  • kankan

助理 等级规则
105/200
资料完整度
20/100
用户活跃度
0/100

Ta的关注

2

Ta的粉丝

3

Ta的访客

7