谁一开始就是大神?

Yii::$app->end();不明白这是干啥用的(这是一段邮箱找回密码的代码)[2.0]

class ManageController extends Controller
{
    public function actionMailchangepass()
    {
        $this->layout = false;
        $time = Yii::$app->request->get("timestamp");
        $adminuser = Yii::$app->request->get("adminuser");
        $token = Yii::$app->request->get("token");
        $model = new Admin;
        $myToken = $model->createToken($adminuser, $time);
        if ($token != $myToken) {
            $this->redirect(['public/login']);
            Yii::$app->end();
        }
        if (time() - $time > 300) {
            $this->redirect(['public/login']);
            Yii::$app->end();
        }
        if (Yii::$app->request->isPost) {
            $post = Yii::$app->request->post();
            if ($model->changePass($post)) {
                Yii::$app->session->setFlash('info', '密码修改成功');
            }
        }
        $model->adminuser = $adminuser;
        return $this->render("mailchangepass", ['model' => $model]);

    }
}

Yii::$app->end($status = 0, $response = null)表示终止程序;默认的表示正常终止,状态默认为0;其它状态均异常;
redirect不能终止程序 必须使用return 或者 Yii::$app->end(); 终止程序
这是注释。意思就是end()为确保程序的生命周期的完成。
看到源码是这么写,exit 终止执行,楼上的都是正确 也可以换成: die; return;
public function end($status=0,$exit=true)
上一句已经跳转到其他页面了,想知道如果没有这一句会发生什么
学习了,原来是相当于exit()。终止程序执行。

赞(0) 打赏
未经允许不得转载:菜鸟之家 » Yii::$app->end();不明白这是干啥用的(这是一段邮箱找回密码的代码)[2.0]

评论 抢沙发

登录

找回密码

注册