5-6ThinkPHP5页面跳转与重定向

5-6ThinkPHP5页面跳转与重定向

年暖汕来屑来韶孺镜笔撩戊哼

5-6ThinkPHP5页面跳转与重定向第1张

要实现界面跳转,必须继承自基类Controller

因为这是Controller引入的trait中的方法

D:\phpStudy\PHPTutorial\WWW\tp5\thinkphp\library\traits\controller\Jump.php:

5-6ThinkPHP5页面跳转与重定向第2张

5-6ThinkPHP5页面跳转与重定向第3张

5-6ThinkPHP5页面跳转与重定向第4张

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 "登录界面";
   }

}

验证成功时:

5-6ThinkPHP5页面跳转与重定向第5张

5-6ThinkPHP5页面跳转与重定向第6张

验证失败:

5-6ThinkPHP5页面跳转与重定向第7张

5-6ThinkPHP5页面跳转与重定向第8张


跨控制器跳转

创建Login控制器;

5-6ThinkPHP5页面跳转与重定向第9张

<?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');
       }
   }


}

验证成功:

5-6ThinkPHP5页面跳转与重定向第10张

5-6ThinkPHP5页面跳转与重定向第11张

验证失败:

5-6ThinkPHP5页面跳转与重定向第12张

5-6ThinkPHP5页面跳转与重定向第13张


跨模块调用

创建demo模块

5-6ThinkPHP5页面跳转与重定向第14张

<?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');
       }
   }


}

验证成功:

5-6ThinkPHP5页面跳转与重定向第15张

5-6ThinkPHP5页面跳转与重定向第16张

验证失败:

5-6ThinkPHP5页面跳转与重定向第17张

5-6ThinkPHP5页面跳转与重定向第18张


协议跳转,验证失败后直接跳转到外部链接百度

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/');
       }
   }


}

验证失败:

5-6ThinkPHP5页面跳转与重定向第19张

5-6ThinkPHP5页面跳转与重定向第20张


跳转地址除了可以使用字符串给出的形式还可以使用路由生成

<?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/');
       }
   }


}

验证成功:

5-6ThinkPHP5页面跳转与重定向第21张

5-6ThinkPHP5页面跳转与重定向第22张


使用助手函数简化

<?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/');
       }
   }


}

执行:

验证成功:

5-6ThinkPHP5页面跳转与重定向第21张

5-6ThinkPHP5页面跳转与重定向第22张


5-6ThinkPHP5页面跳转与重定向第25张

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方法

5-6ThinkPHP5页面跳转与重定向第26张

验证失败:

执行:http://tp5.com/index/index/hello/name/abcd

直接跳转到百度:

5-6ThinkPHP5页面跳转与重定向第27张


坝谈艇栋屉窍峭盎换卤犊挪峭