年暖汕来屑来韶孺镜笔撩戊哼
要实现界面跳转,必须继承自基类Controller
因为这是Controller引入的trait中的方法
D:\phpStudy\PHPTutorial\WWW\tp5\thinkphp\library\traits\controller\Jump.php:
D:\phpStudy\PHPTutorial\WWW\tp5\application\index\controller\Index.php:
<?php namespace app\index\controller; //先继承基类 class Index extends \think\Controller { public function hello($name) { if($name=="thinkphp") { //验证成功,跳转到当前控制器中的ok方法 $this->success('验证成功,正在跳转!','ok'); } else { //验证失败,跳转到当前控制器中的login方法 $this->error('验证失败,正在返回登录界面!','login'); } } public function ok() { return "欢迎使用后台管理系统"; } public function login() { return "登录界面"; } }
验证成功时:
验证失败:
跨控制器跳转
创建Login控制器;
<?php namespace app\index\controller; class Login extends \think\Controller { public function ok() { return "欢迎使用后台管理系统"; } public function login() { return "登录界面"; } }
D:\phpStudy\PHPTutorial\WWW\tp5\application\index\controller\Index.php:
<?php namespace app\index\controller; //先继承基类 class Index extends \think\Controller { public function hello($name) { if($name=="thinkphp") { //验证成功,跳转到Loign控制器中的ok方法 $this->success('验证成功,正在跳转!','login/ok'); } else { //验证失败,跳转到Login控制器中的login方法 $this->error('验证失败,正在返回登录界面!','login/login'); } } }
验证成功:
验证失败:
跨模块调用
创建demo模块
<?php namespace app\demo\controller; class Login extends \think\Controller { public function ok() { return "欢迎使用后台管理系统"; } public function login() { return "登录界面"; } }
D:\phpStudy\PHPTutorial\WWW\tp5\application\index\controller\Index.php:
<?php namespace app\index\controller; //先继承基类 class Index extends \think\Controller { public function hello($name) { if($name=="thinkphp") { //验证成功,跳转到demo模块Loign控制器中的ok方法 $this->success('验证成功,正在跳转!','demo/login/ok'); } else { //验证失败,跳转到demo模块Login控制器中的login方法 $this->error('验证失败,正在返回登录界面!','/demo/login/login'); } } }
验证成功:
验证失败:
协议跳转,验证失败后直接跳转到外部链接百度
D:\phpStudy\PHPTutorial\WWW\tp5\application\index\controller\Index.php:
<?php namespace app\index\controller; //先继承基类 class Index extends \think\Controller { public function hello($name) { if($name=="thinkphp") { //验证成功,跳转到demo模块Loign控制器中的ok方法 $this->success('验证成功,正在跳转!','demo/login/ok'); } else { //验证失败,跳转到demo模块Login控制器中的login方法 $this->error('验证失败,正在返回登录界面!','http://www.baidu.com/'); } } }
验证失败:
跳转地址除了可以使用字符串给出的形式还可以使用路由生成
<?php namespace app\index\controller; //先继承基类 class Index extends \think\Controller { public function hello($name) { if($name=="thinkphp") { //验证成功,跳转到demo模块Loign控制器中的ok方法 $this->success('验证成功,正在跳转!',\think\Url::build('demo/login/ok')); } else { //验证失败,跳转到demo模块Login控制器中的login方法 $this->error('验证失败,正在返回登录界面!','http://www.baidu.com/'); } } }
验证成功:
使用助手函数简化
<?php namespace app\index\controller; //先继承基类 class Index extends \think\Controller { public function hello($name) { if($name=="thinkphp") { //验证成功,跳转到demo模块Loign控制器中的ok方法 $this->success('验证成功,正在跳转!',url('demo/login/ok')); } else { //验证失败,跳转到demo模块Login控制器中的login方法 $this->error('验证失败,正在返回登录界面!','http://www.baidu.com/'); } } }
执行:
验证成功:
D:\phpStudy\PHPTutorial\WWW\tp5\application\index\controller\Index.php:
<?php namespace app\index\controller; //先继承基类 class Index extends \think\Controller { public function hello($name) { if($name=="thinkphp") { //redirect(路由地址,请求变量,后缀,是否显示域名) //验证成功,跳转到ok方法,并将变量siteName发送到ok方法 $this->redirect('ok',['siteName'=>'萌面人资料铺']); } else { //验证失败,百度,302临时重定向,301永久重定向 $this->redirect('http://www.baidu.com/','302'); } } public function ok($siteName) { return "欢迎来到".$siteName; } }
验证成功:
执行:http://tp5.com/index/index/hello/name/thinkphp
直接跳转到:ok方法
验证失败:
执行:http://tp5.com/index/index/hello/name/abcd
直接跳转到百度:
坝谈艇栋屉窍峭盎换卤犊挪峭