thinkphp5 页面跳转和重定向

页面跳转

         在应用开发中,经常会遇到一些带有提示信息的跳转页面,例如操作成功或者操作错误页面,并且自动跳转到另外一个目标页面。系统的\think\Controller类内置了两个跳转方法successerror,用于页面跳转提示。

          例如,登录功能,根据返回的登录结果,跳往不同的页面:

<?php
namespace app\index\controller;

use think\Controller;        //引用Controller类

class Login extends Controller
{
    //登录首页
    public function index(){
        return view();
    }

    //登录方法
    public function loginCheck(){
        //获取参数的封装方法
        $user = params('username');
        $pwd = params('password');

        //验证登录信息(代码略)
        ...

        if('结果'){
            //成功跳转
            //$this->success('信息提示','跳转地址','用户自定义数据','信息提示显示时长/秒','header信息');
            $this->success('登录成功');
        }else{
            //失败跳转
            //$this->success('信息提示','跳转地址','用户自定义数据','信息提示显示时长/秒','header信息');
            $this->error('用户名或密码错误');
        }
    }
}

        跳转地址是可选的:

                       success方法的默认跳转地址是$_SERVER["HTTP_REFERER"],获取当前链接的上一个连接的来源地址;

                       error方法的默认跳转地址是javascript:history.back(-1);返回上一页。

      successerror方法都可以对应模板,模板可以用框架自带,也可自己设置:

           默认模板

//默认模板
THINK_PATH . 'tpl/dispatch_jump.tpl';

//默认错误跳转对应的模板文件
'dispatch_error_tmpl' => APP_PATH . 'tpl/dispatch_jump.tpl',
//默认成功跳转对应的模板文件
'dispatch_success_tmpl' => APP_PATH . 'tpl/dispatch_jump.tpl',


               自定义模板:

//默认错误跳转对应的模板文件
'dispatch_error_tmpl' => 'public/error',
//默认成功跳转对应的模板文件
'dispatch_success_tmpl' => 'public/success',

 

重定向: 

    \think\Controller类的redirect方法可以实现页面的重定向功能。

//重定向到News模块的Category操作
$this->redirect('News/category');

//带参数的重定向
$this->redirect('News/category', ['cate_id' => 2]);

         重定向到外部链接:

//重定向到指定的URL地址 并且使用302
$this->redirect('http://thinkphp.cn/blog/2',302);

//重定向的时候通过session闪存数据传值
$this->redirect('News/category', ['cate_id' => 2], 302, ['data' => 'hello']);

//记住当前的URL后跳转
redirect('News/category')->remember();

//需要跳转到上次记住的URL
redirect()->restore();

注意:跳转和重定向的URL地址不需要再使用url方法进行生成,会自动调用,请注意避免,否则会导致多次生成而出现两个重复的URL后缀 

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值