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首页)成功;
(验证信息失败或者提交失败-》返回登录页面)。
流程图:
frontend/controllersSiteController.php----------->view/login.php(页面显示)
actionLogin()
|
common/models/LoginForm.php
Login()
。。。