PHPackages                             big-dream/think-jump - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. big-dream/think-jump

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

big-dream/think-jump
====================

ThinkPHP 8.0 跳转扩展

4.0.0(2y ago)3462MITPHPPHP &gt;=8.0.0

Since Dec 10Pushed 1y ago1 watchersCompare

[ Source](https://github.com/big-dream/think-jump)[ Packagist](https://packagist.org/packages/big-dream/think-jump)[ RSS](/packages/big-dream-think-jump/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (8)Dependencies (1)Versions (12)Used By (0)

ThinkPHP 8.0 跳转扩展
=================

[](#thinkphp-80-跳转扩展)

从 ThinkPHP 6.0 开始，从核心中移除Jump类，类里面包含`success`、`error`、`redirect`和`result`方法。这几个方法在项目里面用的蛮多的，所以将它们移植成一个扩展使用。

安装
--

[](#安装)

```
composer require big-dream/think-jump:4.*

```

使用示例
----

[](#使用示例)

### Jump::success($msg, $url, $wait, $header, $data)

[](#jumpsuccessmsg-url-wait-header-data)

```
// 显示提示信息，然后返回上一页
\bigDream\thinkJump\Jump::success('操作成功!');

// 显示提示信息，然后返回Index/index页面
\bigDream\thinkJump\Jump::success('操作成功!', 'Index/index');

// 显示提示信息，然后15秒后返回Index/index页面
\bigDream\thinkJump\Jump::success('操作成功!', 'Index/index', 15);

// 显示提示信息，并且为页面添加header头，然后15秒后返回Index/index页面
\bigDream\thinkJump\Jump::success('操作成功!', 'Index/index', 15, ['auth-token' => 'abcd学英语']);
```

### Jump::error($msg, $url, $wait, $header, $data)

[](#jumperrormsg-url-wait-header-data)

```
// 显示提示信息，然后返回上一页
\bigDream\thinkJump\Jump::error('操作失败!');

// 显示提示信息，然后返回Index/index页面
\bigDream\thinkJump\Jump::error('操作失败!', 'Index/index');

// 显示提示信息，然后15秒后返回Index/index页面
\bigDream\thinkJump\Jump::error('操作失败!', 'Index/index', 15);

// 显示提示信息，并且为页面添加header头，然后15秒后返回Index/index页面
\bigDream\thinkJump\Jump::error('操作失败!', 'Index/index', 15, ['auth-token' => 'abcd学英语']);
```

### Jump::redirect($url, $msg, $code, $header)

[](#jumpredirecturl-msg-code-header)

```
// 跳转到上一页
\bigDream\thinkJump\Jump::redirect();

// 跳转到Index/index页面，设置在AJAX请求下返回的信息
\bigDream\thinkJump\Jump::redirect('Index/index', '请先登录');

// 跳转到Index/index页面，设置状态码和在AJAX请求下返回的信息
\bigDream\thinkJump\Jump::redirect('Index/index', '请先登录', 301);

// 跳转到Index/index页面，设置状态码、Header头和在AJAX请求下返回的信息
\bigDream\thinkJump\Jump::redirect('Index/index', '请先登录', 301, ['auth-token' => 'abcd学英语']);
```

### Jump::result($data, $code, $msg, $type, $header)

[](#jumpresultdata-code-msg-type-header)

```
$result = [
    ['id' => 1, 'name' => 'jwj'],
    ['id' => 2, 'name' => 'china'],
];

// 返回封装后的数据集
\bigDream\thinkJump\Jump::result($result);

// 返回封装后的数据集，并且设置code
\bigDream\thinkJump\Jump::result($result, 'success');

// 返回封装后的数据集，并且设置code和msg
\bigDream\thinkJump\Jump::result($result, 'success', '查询成功');

// 返回封装后的数据集，并且设置code、msg和数据类型
\bigDream\thinkJump\Jump::result($result, 'success', '查询成功', 'json');

// 返回封装后的数据集，并且设置code、msg、数据类型和Header头
\bigDream\thinkJump\Jump::result($result, 'success', '查询成功', 'json', ['auth-token' => 'abcd学英语']);
```

AJAX请求
------

[](#ajax请求)

当前请求信息`header`中的`x-requested-with`为`XMLHttpRequest`时，会被认定为AJAX请求。 这时候，程序根据`header`中的`accept`来自动判断客户端所需要的数据类型，然后返回对应的数据类型。

目前，仅支持三种数据类型：`json`、`jsonp`和`xml`。

### JSON返回示例

[](#json返回示例)

```
{
    "code": 0,
    "msg": "操作成功!",
    "url": "/Index/index",
    "wait": 15,
    "data": null
}
```

### JSONP返回示例

[](#jsonp返回示例)

> 可在请求信息中携带`callback`参数来自定义`JSONP`回调方法，一般放在URL地址参数中，也可以放在POST参数中。

```
jsonpReturn({
    "code": 0,
    "msg": "操作成功!",
    "url": "/Index/index",
    "wait": 15,
    "data": null
});
```

### XML返回示例

[](#xml返回示例)

```

    0
    操作成功!
    /Index/index
    15

```

返回Response
----------

[](#返回response)

为了方便在中间件里使用，`2.0.0`版本增加了返回`\think\Response`对象的支持，只需要在调用跳转方法前调用`returnResponse`方法即可。

简单示例：

```
return \bigDream\thinkJump\Jump::returnResponse()->success('操作成功!');

return \bigDream\thinkJump\Jump::returnResponse()->error('操作失败!');

return \bigDream\thinkJump\Jump::returnResponse()->redirect();

reutrn \bigDream\thinkJump\Jump::returnResponse()->result([
    ['id' => 1, 'name' => 'jwj'],
    ['id' => 2, 'name' => 'china'],
]);
```

中间件完整示例：

```
