代码拉取完成,页面将自动刷新
从 ThinkPHP 6.0 开始,从核心中移除Jump类,类里面包含success
、error
、redirect
和result
方法。这几个方法在项目里面用的蛮多的,所以将它们移植成一个扩展使用。
composer require big-dream/think-jump:3.*
// 显示提示信息,然后返回上一页
\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学英语']);
// 显示提示信息,然后返回上一页
\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学英语']);
// 跳转到上一页
\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学英语']);
$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学英语']);
当前请求信息header
中的x-requested-with
为XMLHttpRequest
时,会被认定为AJAX请求。
这时候,程序根据header
中的accept
来自动判断客户端所需要的数据类型,然后返回对应的数据类型。
目前,仅支持三种数据类型:json
、jsonp
和xml
。
{
"code": 0,
"msg": "操作成功!",
"url": "/Index/index",
"wait": 15,
"data": null
}
可在请求信息中携带
callback
参数来自定义JSONP
回调方法,一般放在URL地址参数中,也可以放在POST参数中。
jsonpReturn({
"code": 0,
"msg": "操作成功!",
"url": "/Index/index",
"wait": 15,
"data": null
});
<?xml version="1.0" encoding="utf-8"?>
<think>
<code>0</code>
<msg>操作成功!</msg>
<url>/Index/index</url>
<wait>15</wait>
<data></data>
</think>
为了方便在中间件里使用,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'],
]);
中间件完整示例:
<?php
namespace app\middleware;
use bigDream\thinkJump\Jump;
class Check
{
/**
* @param \think\Request $request
* @param \Closure $next
* @return \think\Response
*/
public function handle($request, \Closure $next)
{
if (time() % 2) {
return Jump::returnResponse()->error('呀,偶数不能访问!');
} else {
return $next($request);
}
}
}
引入本包时,默认会在配置文件目录 /config
自动创建 jump.php
配置文件,可根据需求修改配置内容。
<?php
// 跳转配置
return [
// 成功跳转页面模板文件
'success_tmpl' => app()->getRootPath() . 'vendor/big-dream/think-jump/src/success.html',
// 成功跳转页停留时间(秒)
'success_wait' => 3,
// 成功跳转的code值
'success_code' => 0,
// 错误跳转页面模板文件
'error_tmpl' => app()->getRootPath() . 'vendor/big-dream/think-jump/src/error.html',
// 错误跳转页停留时间(秒)
'error_wait' => 3,
// 错误跳转的code值
'error_code' => 1,
// 默认AJAX请求返回数据格式,可用:Json,Jsonp,Xml
'ajax_return' => 'Json',
];
如果想使用时,动态修改配置,可以使用Jump::setConfig()
方法。
// 修改单项配置
\bigDream\thinkJump\Jump::setConfig('success_wait', 1);
// 修改多项配置
\bigDream\thinkJump\Jump::setConfig([
// 成功跳转页停留时间(秒)
'success_wait' => 3,
// 成功跳转的code值
'success_code' => 0,
// 错误跳转页停留时间(秒)
'error_wait' => 3,
// 错误跳转的code值
'error_code' => 1,
// 默认AJAX请求返回数据格式,可用:Json,Jsonp,Xml
'ajax_return' => 'Json',
]);
// 获取全部配置
dump(\bigDream\thinkJump\Jump::getConfig());
// 获取单项配置
dump(\bigDream\thinkJump\Jump::getConfig('success_wait'));
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
1. 开源生态
2. 协作、人、软件
3. 评估模型