thinkphp $this->success方法不跳转页面
使用fastadmin(thinkphp)在控制器中执行以下代码,但是前台页面并没有跳转
$this->success('注册成功', url('index/login'), ['url' => url('index/login'), 'id' => $admin->id, 'username' => $username, 'avatar' => '/assets/img/avatar.png']);
这说明你的代码很有可能放到了try catch语句中了,例如:
Db::startTrans();
try {
Db::commit();
$this->success('注册成功', url('index/login'), ['url' => url('index/login'), 'id' => $admin->id, 'username' => $username, 'avatar' => '/assets/img/avatar.png']);
} catch (\Exception $e) {
Db::rollback();
$this->error($e->getMessage());
}
正确的做法是放在外面,参考如下:
Db::startTrans();
try {
Db::commit();
} catch (\Exception $e) {
Db::rollback();
$this->error($e->getMessage());
}
$this->success('注册成功', url('index/login'), ['url' => url('index/login'), 'id' => $admin->id, 'username' => $username, 'avatar' => '/assets/img/avatar.png']);
我们可以在源代码中看到success方法中有下面一行代码:
如果把代码放在try catch中,会被catch捕获,也就会调用$this->error($e->getMessage());代码,输出错误的返回结果,状态为0,url为空,错误信息为空。