YiiHoney 2011-09-28 12:35:56 4740次浏览 5条回复 2 0 0

1、在model层的rules方法中,需要验证的字段用特定的验证规则来验证这个我清楚了,不过我还有一个问题:在rules方法中,能不能为需要被验证的字段指定特定的方法呢?比如说:array('username', 'required')是在保存时需要验证用户名不能空为的,但是我想在更新数据的时候,对它不采用验证,也就是说在更新的时候,它可以为空,为了达到这种目的,我应该在rules方法中怎么弄呢?

  • 回复于 2011-09-28 13:05 举报

    你可以使用场景
    例如,
    规则 array('username', 'required','on'=>'update')
    在 controller 中 $model->setScenario("update")
    这条规则只对update场景起作用

  • 回复于 2011-09-28 13:23 举报

    OK,thanks.

  • 回复于 2011-09-28 13:25 举报

    no thanks..

  • 回复于 2011-09-28 15:33 举报

    你的这一招:setScenario的用法,我一点都不知道,能你具体说一下吗?

  • 回复于 2011-09-28 15:42 举报

    其实就是设置一下场景,当更新修改数据时,需要根据场景进行验证,而又不能使用 new modelClass('场景') 的方式
    例如,用户修改个人资料时用户名是不允许修改的,只有在注册时可以修改,当用户修改资料时 使用 setScenario 方法就可以利用场景来限制了

您需要登录后才可以回复。登录 | 立即注册