2019.01.11yii2 login的流程

1.frontend/controllers/SiteController.php

public function actionLogin()
{


    if (!Yii::$app->user->isGuest) {//判断user是否是客户
        return $this->goHome();//yii底层的东西//如果不是,返回首页home  http://y2aa-frontend.test/index.php
    }

    $model = new LoginForm();//实例化common/models/LoginForm.php 的LoginForm类
    if ($model->load(Yii::$app->request->post()) && $model->login()) {
        //获取登录页面表单提交的信息post,login:登录方法 common/models/LoginForm.php/Login
        return $this->goBack();//将浏览器重定向到上次访问的页面。(即首页)(登录成功)
    } 
else {//否则:没有获取到登录提交信息,或者登录提交《$model->login()》方法失败  (登录失败后者首次打开登录页面)
        $model->password = '';//密码赋值为空common/models/LoginForm.php 中定义的局部变量
        return $this->render('login', [//返回到登录页面frontend/view/login.php
            'model' => $model,
        ]);
    }
}

2.common/models/LoginForm.php 

public function login()
{
    if ($this->validate()) {//执行数据验证,yii底层的东西。验证成功,
        return Yii::$app->user->login($this->getUser(), $this->rememberMe ? 3600 * 24 * 30 : 0);
        //返回:yii底层的user->login用户登录,登录成功,即返回首页;$this->getUser()获取用户名;
    }
    
    return false;//如果不执行验证的话,返回false
}

3.common/models/LoginForm.php 

4.

5.流程:登录页面显示及验证,登录成功返回首页,获取登录提交信息失败或者登录失败返回登录页面。

http://y2aa-frontend.test/index.php?r=site%2Flogin------》(判断是不是客户,不是的话,返回home首页;是的话继续执行)

页面显示-》没有获取到用户信息且没有提交信息-》else-》显示登录页面。

---》填写用户信息--》提交--》(验证填写信息-》提交-》返回网站home首页)成功;

                                              (验证信息失败或者提交失败-》返回登录页面)。

流程图:

扫描二维码关注公众号,回复: 5046068 查看本文章

frontend/controllersSiteController.php----------->view/login.php(页面显示)

                   actionLogin()

                            |

       common/models/LoginForm.php

                       Login()

。。。

猜你喜欢

转载自blog.csdn.net/tangerine_/article/details/86236264
今日推荐