你阿牛 2014-09-19 22:22:57 2755次浏览 3条回复 0 0 0

请问为什么我用gii生成的一个User模型。然后用模型里面自定义的一个属性$password2,为什么我的不能在表单里通过 $user_model-> attributes = $_POST['User'];获得$password2的值啊。

  • 回复于 2014-09-23 17:45 举报

    可不可以把代码贴出来看看,正常情况下password2设置为public就可以的。

  • 回复于 2014-09-23 18:55 举报

    我找自己用gii生成了一个模型就对了,可能是我的模型里面少了东西

  • 回复于 2014-10-09 16:28 举报

    在 User 类的 rules() 方法内加上如下一句试试:

    public function rules()  {
        return array(
            ...
            array('password2', 'safe'),
        );
    }
    

    语句

    $user_model->attributes = $_POST['User'];
    默认只会将 User 类中的 safe attributes 传递给 $user_model->attributes, 所谓 safe attributes 就是那些在 rules() 方法声明了验证规则的那些属性。

    上面的array('password2', 'safe')就是在声明验证规则,常见的还有array('password2', 'required').

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