╃巡洋艦㊣

╃巡洋艦㊣

Yii Framework 中文社区

  • 财富值72633
  • 威望值835
  • 总积分97253

个人信息

  • 回复了 的说说
    8月份补签卡爆料:建军节1张,七夕1张,日本投降日3张,敬请期待...
    如果忘记签到,可以使用补签卡
  • 发表了说说
    8月份补签卡爆料:建军节1张,七夕1张,日本投降日3张,敬请期待...
  • 2016-07-31 已签到
    连续签到505天,获得了20个金钱
  • 回复了 的说说
    本大虾 用虚拟机装了个低版本php的xampp 哈哈 真好玩。
    你不是大虾,你是我的小苹果 😃
  • 周六还要正常上班。我不服。
    你上班正常,我服了
  • 2016-07-30 已签到
    连续签到504天,获得了20个金钱
  • 赞了说说
    花繁柳密处,拨得开,才是手段;风狂雨急时,立得定,方见脚根。
  • 回复了 的说说
    网站好多bug......
    欢迎指出
  • 赞了回答

    safe验证器和其他验证器比如email,url是一个级别的,没有任何特殊之处的。如果非要说特别之处,那就是如果在相同场景下对相同的属性声明一次email规则和safe规则,那么生效的会是email。

    所以说真正决定在一个场景中一个验证器是否生效的是当前场景是否包含了该验证器所验证的属性以及该验证器的属性是否指定了生效场景。

    有如下几种主要情况及对应结果

    1。一个场景没有声明任何验证属性,仅仅是个空数组,但rules()却有无穷无尽的验证规则。 结果:使用该场景的model调用validate()不会进行任何的验证。

    2。一个场景声明了一些属性,一些属性没有声明应用场景。 结果:该场景所包含的属性如果在这些没有声明场景的属性里,则依旧会被得到验证。 所以没有声明场景的属性会得到所有声明该属性的场景的关爱。

    3。一些属性指定了应用场景,但不是该场景的另外一个场景也声明了这个属性。 结果:后者的场景无法进行验证,毕竟他的所爱已经心有所属。

    所以说楼主的email的safe 会被所有声明email属性的场景使用。但由于之前提到的email的权重比safe大。所以create和update场景呈现出来的是对email属性进行了email验证器的验证。

董事长 等级规则
97253/100000
资料完整度
100/100
用户活跃度
100/100

Ta的关注

1271

Ta的粉丝

1369

Ta的访客

3248