2016-12-28 14:45:24 1969次浏览 1条回答 0 悬赏 10 金钱
/**
 * 重置密码
 * @return [type] [description]
 */
public function resetPassword()
{
    $res = self::findOne(['user_mobile' => $this->user_mobile]);
    if ($res) {
        $res->user_passwd = md5($this->user_passwd);
        if ($res->save()) {
            return true;
        } else {
            return false;
        }
    } else {
        return false;
    }
    
}

$res是有数据的

frontend\modules\appbuild\models\AppUser Object
(
    [user_passwd_check] => 
    [verifyCode] => 
    [_attributes:yii\db\BaseActiveRecord:private] => Array
        (
            [id] => 16
            [agent_id] => 0
            [user_mobile] => 18336070000
            [user_passwd] => 4297f44b13955235245b2497399d7a93
            [user_qq] => 
            [user_email] => 
            [user_money] => 0.00
            [user_score] => 0
            [user_level] => 1
            [created_at] => 1482833823
            [status] => 1
        )

    [_oldAttributes:yii\db\BaseActiveRecord:private] => Array
        (
            [id] => 16
            [agent_id] => 0
            [user_mobile] => 18336070000
            [user_passwd] => e10adc3949ba59abbe56e057f20f883e
            [user_qq] => 
            [user_email] => 
            [user_money] => 0.00
            [user_score] => 0
            [user_level] => 1
            [created_at] => 1482833823
            [status] => 1
        )

    [_related:yii\db\BaseActiveRecord:private] => Array
        (
        )

    [_errors:yii\base\Model:private] => 
    [_validators:yii\base\Model:private] => 
    [_scenario:yii\base\Model:private] => default
    [_events:yii\base\Component:private] => Array
        (
        )

    [_behaviors:yii\base\Component:private] => Array
        (
        )

)

$res->save() 是一直是 false

补充于 2016-12-28 16:43

,,,,,

  • 回答于 2016-12-28 15:55 举报

    你打印一下错误信息呢,

    2 条回复
    回复于 2016-12-28 16:44 回复

    Array ( [verifyCode] => Array ( [0] => 验证码不正确。 ) )
    显示的这个错误
    但我没用到验证码呀
    我把验证码加上场景就好了['verifyCode', 'captcha', 'captchaAction' => '/appfront/login/captcha', 'on' => 'reg'],
    但还是不明白哪里用到验证码了

    回复于 2016-12-29 09:24 回复

    你这个问题是这样的, 可能你的注册或登录所使用的数据模型和修改密码所使用的数据模型是一致的, 当你save()的时候,会把你的数据进行validate,就是验证rules()里所在属性,而你现在操作类型是重置密码,你的verifyCode属性场景是适用于所有场景,所以才会出现这种情况

您需要登录后才可以回答。登录 | 立即注册
xhh
总监

xhh 郑州

注册时间:2016-12-26
最后登录:2018-08-22
在线时长:10小时42分
  • 粉丝3
  • 金钱2110
  • 威望20
  • 积分2410

热门问题