亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

如何進行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

深泽县| 临洮县| 常山县| 罗江县| 咸阳市| 乌什县| 新化县| 韩城市| 金堂县| 静安区| 仲巴县| 义乌市| 双柏县| 行唐县| 土默特右旗| 基隆市| 靖宇县| 郑州市| 儋州市| 泾源县| 曲阳县| 昌黎县| 繁峙县| 台安县| 吴桥县| 康平县| 北安市| 依兰县| 雷山县| 碌曲县| 仲巴县| 喀什市| 宣威市| 上虞市| 瑞昌市| 武鸣县| 岳普湖县| 监利县| 衡南县| 民权县| 临海市|