2016-07-29 14:00:27 2708次浏览 2条回答 0 悬赏 10 金钱

$oModel->load()的时候会验证 rules 吗?还是说只有加上这句 $oModel->validate()才会走验证规则呀?

补充于 2016-07-29 14:49

最佳答案

  • 飘逸 发布于 2016-07-29 15:14 举报

    load()
    顾名思义,加载。为调用的模型加载从用户那传来的数据用以填充该模型。
    填充的过程是不会使用rules()中声明的验证器去验证的。但是他会把没有在rules()中声明验证器的属性排除在填充之外。
    举个例子:
    假设你拥有 public $haha 属性。
    但是你没有在rules中为$haha声明一个验证器。那么你在调用load()的时候则不会去为$haha填充数据。
    即使这个数据是符合load()数据源的格式的。

    而validate()的责任才是真正去检查每一个被填充了值的属性是否合法。如果不合法,则会往errors属性中填充不合法的信息并返回false。

    3 条回复
    回复于 2016-07-29 15:16 回复

    你为何知道这么多,要交你这个朋友。欢迎加入Yii 娱乐扯淡群。

    回复于 2016-07-29 15:26 回复

    其实俺懂得也不多,主要是人长得帅。

    回复于 2016-07-29 16:08 回复

    好好的论坛都让你们整成什么样子了,不好好讨论技术,就知道装逼,对于你这样的行为,我只想说-----请带上我一起!

    觉得很赞
您需要登录后才可以回答。登录 | 立即注册
YiiSoEasy
CEO

YiiSoEasy 中国

注册时间:2014-11-25
最后登录:2024-03-25
在线时长:188小时51分
  • 粉丝209
  • 金钱10942
  • 威望120
  • 积分14022

热门问题