#### 頁面跳轉
在應用開發中,經常會遇到一些帶有提示信息的跳轉頁面,例如操作成功或者操作錯誤頁面,并且自動跳轉到另外一個目標頁面。系統的`\think\Controller`類內置了兩個跳轉方法`success`和`error`,用于頁面跳轉提示。
跳轉方法可以用于控制器的初始化方法
使用方法很簡單,舉例如下:
~~~
<?php
namespace app\index\controller;
use app\index\model\User;
use think\Controller;
class Index extends Controller
{
public function index()
{
$user = new User; //實例化User對象
$result = $user->save($data);
if($result){
//設置成功后跳轉頁面的地址,默認的返回頁面是$_SERVER['HTTP_REFERER']
$this->success('新增成功', 'User/list');
} else {
//錯誤頁面的默認跳轉頁面是返回前一頁,通常不需要設置
$this->error('新增失敗');
}
}
}
~~~
跳轉地址是可選的,success方法的默認跳轉地址是`$_SERVER["HTTP_REFERER"]`,error方法的默認跳轉地址是`javascript:history.back(-1);`。
默認的等待時間都是3秒
success和error方法都可以對應的模板,默認設置是兩個方法對應的模板都是:
~~~
THINK_PATH . 'tpl/dispatch_jump.tpl'
~~~
我們可以改變默認的模板區分success和error方法:
~~~
//默認錯誤跳轉對應的模板文件
'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',
~~~
模板文件可以使用模板標簽,并且可以使用下面的模板變量:
|變量| 含義|
|--|--|
|$data |要返回的數據|
|$msg |頁面提示信息|
|$code |返回的code|
|$wait |跳轉等待時間 單位為秒|
|$url |跳轉頁面地址|
`error方法`會自動判斷當前請求是否屬于`Ajax請求`,如果屬于`Ajax請求`則會自動轉換為`default_ajax_return`配置的格式返回信息。 `success`在`Ajax請求`下不返回信息,需要開發者自行處理。