murenhui

murenhui

D罩杯

  • 财富值245
  • 威望值0
  • 总积分395

个人信息

  • 2019-01-24 已签到
    连续签到2天,获得了10个金钱
  • 2019-01-23 已签到
    连续签到1天,获得了5个金钱
  • 2019-01-10 已签到
    连续签到1天,获得了5个金钱
  • 2019-01-08 已签到
    连续签到1天,获得了5个金钱
  • 赞了回答

    自己堵自己的路嘛你这是。
    继承就是原封不动的拿来,子类不写 rules 方法。
    所以 rules 是啥还是啥,继承多少代都是如此,规则永不变!name 就是 required
    纯继承想解决问题,是一定不行的。所以,你想“不重写 rules,而是通过继承的方法“之外,还需要其它方面做些改动,那就是:
    必须在规则验证前赋值 name,让它符合 required 规则就行,这个思路你看可以吗?
    那么如何在之前赋值呢?先说说你的 beforeSave() 吧:
    你把子类的name在 beforeSave 里赋值,这个是可以的。但是,时机不对。因为 validate()是在 beforeSave() 之前验证的,那时子类的 name 还是为空哦。
    那咋办?
    换时机啊,在 beforeValidate() 不就可以了嘛。
    Yii2 的 AR 模型体系里,从赋值到入库留了好多事件,这些事件就是你注入自定义代码的机会。
    看看哪个是你可以用的。

  • 2019-01-04 已签到
    连续签到3天,获得了15个金钱
  • 2019-01-03 已签到
    连续签到2天,获得了10个金钱
  • 2018-12-31 已签到
    连续签到4天,获得了20个金钱
  • 2018-12-30 已签到
    连续签到3天,获得了15个金钱
  • 2019-01-02 已签到
    连续签到1天,获得了5个金钱
见习主管 等级规则
395/500
资料完整度
30/100
用户活跃度
0/100

Ta的关注

1

Ta的粉丝

2

Ta的访客

48