中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何進行TP5重定向

發布時間:2021-10-21 09:40:01 來源:億速云 閱讀:238 作者:柒染 欄目:大數據

如何進行TP5重定向,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

 

學習目標

一、頁面跳轉

如果要使用頁面跳轉必須要繼承基類Controller類,因為基類Controller引入了trait類庫,trait類庫又實現了success()error()的跳轉方法。

1、當前控制器

來到默認模塊默認控制器中演示,首先繼承自基類Controller,在當前Index控制器中創建一個hello()方法來模擬網站的后臺登陸和頁面的跳轉:

class Index extends \think\Controller
{
    public function index()
    {
        return 'TP5學習ing....';
    }
    public function hello($name)
    {
        if ($name=='thinkphp') {
          $this->success('驗證成功,正在跳轉~~','ok');
        }
        else {
          $this->error('驗證失敗,返回登陸頁面','login');
        }
    }
    public function ok()
    {
        return '歡迎使用本系統';
    }
    public function login()
    {
        return '登陸頁面';
    }
}

根據邏輯,如果訪問的url是:http://tp5.com/index/index/hello/name/thinkphp,會執行success()方法,跳轉到ok()方法,反之,使用:http://tp5.com/index/index/hello/name/tp5,則會走error()方法,跳轉到login()方法。


2、跨控制器

首先創建一個新的控制器Login,把Index中的ok()login()方法剪切到文件中:

<?php
namespace app\index\controller;
class Login extends \think\Controller
{
  public function ok()
  {
      return '歡迎使用本系統';
  }
  public function login()
  {
      return '登陸頁面';
  }
}

然后,Index控制器也進行修改:

<?php
namespace app\index\controller;
class Index extends \think\Controller
{
    public function index()
    {
        return 'TP5學習ing....';
    }
    public function hello($name)
    {
        if ($name=='thinkphp') {
          $this->success('驗證成功,正在跳轉~~','login/ok');
        }
        else {
          $this->error('驗證失敗,返回登陸頁面','login/login');
        }
    }
}

這樣就實現了跨控制器的跳轉,我們來驗證一下:http://tp5.com/index/index/hello/name/thinkphphttp://tp5.com/index/index/hello/name/tp5都能正常跳轉。


3、跨模塊

首先創建一個demo模塊,模塊下創建控制器Login.php,把上個例子的Login.php的內容拷貝過去,修改下命名空間,保存。

然后修改下Index控制器:

public function hello($name)
{
    if ($name=='thinkphp') {
      $this->success('驗證成功,正在跳轉~~','demo/login/ok');
    }
    else {
      $this->error('驗證失敗,返回登陸頁面','demo/login/login');
    }
}

這樣就實現了跨模塊的跳轉,我們來驗證一下:http://tp5.com/index/index/hello/name/thinkphphttp://tp5.com/index/index/hello/name/tp5依舊都能正常跳轉。


4、外部地址

如果跳轉為外部地址的話,記得前提是必須要以協議開頭!
演示也很簡單,修改一下error()方法跳轉的地址:

$this->error('驗證失敗,返回登陸頁面','http://www.baidu.com');

使用http://tp5.com/index/index/hello/name/tp5測試一下,成功跳轉到百度。


補充說明

補充一下,這個跳轉地址,除了可以用字符串的形式外,還可以路由的方式來生成。示例如下:

$this->success('驗證成功,正在跳轉~~',\think\Url::build('demo/login/ok'));

如果覺得這樣寫比較繁瑣,還可以通過注入函數進行簡化:

$this->success('驗證成功,正在跳轉~~',url('demo/login/ok'));

也沒有問題。


二、URL重定向

使用redirect(路由地址,請求變量,后綴,是否顯示域名)方法
演示一下,因為演示是跳轉到同一控制器中的,只需要前兩個參數:

class Index extends \think\Controller
{
    public function hello($name)
    {
        if ($name=='thinkphp') {
          $this->redirect('ok',['siteName'=>'百度']);
        }
    }
    public function ok($siteName)
    {
      return '成功就會跳轉到 '.$siteName.' 網址。';
    }
}

我們來驗證一下:http://tp5.com/index/index/hello/name/thinkphp,可以正常跳轉。

同樣的,重定向也支持外部地址:

    public function hello($name)
    {
        if ($name=='thinkphp') {
          $this->redirect('ok',['siteName'=>'百度']);
        }
        else {
          $this->redirect('http://www.baidu.com',302);//302是臨時重定向,301是永久重定向
        }
    }

驗證一下:http://tp5.com/index/index/hello/name/tp5,直接重定向到百度了。

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

崇义县| 长丰县| 新干县| 马公市| 布尔津县| 沙田区| 南华县| 英德市| 西林县| 庆元县| 普定县| 星座| 鄄城县| 清原| 宝山区| 天柱县| 安图县| 龙川县| 浑源县| 通河县| 青岛市| 清远市| 炉霍县| 曲麻莱县| 乌兰浩特市| 即墨市| 防城港市| 江津市| 张家界市| 濮阳市| 弋阳县| 襄汾县| 英超| 平度市| 榆社县| 绵竹市| 安义县| 泽库县| 逊克县| 宁津县| 广安市|