ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

修改密码 MVC

2021-06-09 16:32:23  阅读:242  来源: 互联网

标签:修改 app Yii 密码 MVC user model password id


控制器site

    public function actionPassword(){
        $model = new PasswordForm();
        /*判断请求属性
        if ($request->isAjax) { // 判断是否为AJAX 请求 };if ($request->isGet)  { // 判断是否为GET 请求 };if ($request->isPost) { // 判断是否为POST 请求};if ($request->isPut)  { // 判断是否为PUT 请求 }
        */
        $request = Yii::$app->request;

        if ($request->isPost && $model->load(Yii::$app->request->post()) && $model->changePassword()){

            Yii::$app->user->logout();
            return $this->goHome();
        }else{
            return $this->render('password',['model'=>$model]);
        }
    }

passworForm表单模型

    public function changePassword(){
/*rules验证,不习惯用else的话,把else删了自己创建rules*/
// if (!$this->validate()) {
// return null;
// }
$id=Yii::$app->user->id;
$user = User::findIdentity($id);
$password = $user->password_hash;
if (Yii::$app->getSecurity()->validatePassword($this->password,$password)){
if ($this->pass1 == $this->pass2){
$newpass = Yii::$app->getSecurity()->generatePasswordHash($this->pass1);
$user->password=$newpass;
$user->a($id,$newpass);
if ($user->save()){
return true;
}else{
return false;
}
}else{
Yii::$app->session->setFlash('error','两次密码不一样');
return false;
}
}else{
Yii::$app->session->setFlash('error','旧密码错误');
return false;
}
/*findIdentity($id)根据ID获取用户信息 getId()获取用户id*/
}

User模型

    public function a($id,$model){
        $user = User::findIdentity($id);   
        $user->password_hash=$model;
        $user->save();
    }

视图password.php

<?php

/* @var $this yii\web\View */
/* @var $form yii\bootstrap\ActiveForm */
/* @var $model PasswordForm */

use backend\models\PasswordForm;
use yii\helpers\Html;
use yii\bootstrap\ActiveForm;
//
$this->title = '修改密码';
$this->params['breadcrumbs'][] = $this->title;
?>
<div class="left">
    <div class="row">
        <div class="col-md-1">
        </div>
        <div class="col-md-6">
            <div class="box">
                <div class="box-header with-border">
                    <h3 class="box-title">修改密码</h3>
                </div>
                <?php $form = ActiveForm::begin(['id' => 'login-form', 'enableClientValidation' => false]); ?>
                <div class="box-body">

                    <div class="form-group">
                        <label for="inputEmail3" class="col-sm-2 control-label">当前用户</label>
                        <div class="col-sm-9">
                            <div type="text" readonly="readonly" disabled="disabled" class="form-control" id="user_role" >
                            <?= Yii::$app->user->identity->username; ?>
                            </div>
                        </div><br><br>
                    </div>

                    <div class="form-group">
                        <label for="inputPassword3" class="col-sm-2 control-label">旧密码</label>
                        <div class="col-sm-9">
                            <?= $form
                                ->field($model, 'password')
                                ->label(false)
                                ->textInput(['placeholder' => $model->getAttributeLabel('旧密码')]) ?>
                        </div>
                    </div>

                    <div class="form-group">
                        <label for="inputPassword3" class="col-sm-2 control-label">新密码</label>
                        <div class="col-sm-9">
                            <?= $form
                                ->field($model, 'pass1')
                                ->label(false)
                                ->passwordInput(['placeholder' => $model->getAttributeLabel('新密码')]) ?>
                        </div>
                    </div>

                    <div class="form-group">
                        <label for="inputPassword3" class="col-sm-2 control-label">确认密码</label>
                        <div class="col-sm-9">
                            <?= $form
                                ->field($model, 'pass2')
                                ->label(false)
                                ->passwordInput(['placeholder' => $model->getAttributeLabel('确认密码')]) ?>
                        </div>
                    </div>
                </div>
                <!-- /.box-body -->
                <div class="box-footer">
<!--                    <label id="msg_info" class="control-label text-green hide"><i class="fa fa-check"></i>修改密码成功</label>-->
                    <?= Html::submitButton('修改密码', ['class' => 'btn btn-primary']) ?>
                </div>
                <!-- /.box-footer -->
                <?php ActiveForm::end(); ?>
            </div>
        </div>

        <div class="col-md-5">
        </div>
    </div>
</div>

 

标签:修改,app,Yii,密码,MVC,user,model,password,id
来源: https://www.cnblogs.com/qingquanqimo/p/14867430.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有