框架发布

框架发布

最新版本发布信息
提问交流

提问交流

使用问题咨询
经验分享

经验分享

开发经验交流分享
功能建议

功能建议

官方开发功能建议
BUG反馈

BUG反馈

使用BUG反馈
模块&插件&数据包

模块&插件&数据包

模块插件数据包分享

$this->error()无法跳转的坑!

delgo 发表了文章 • 0 个评论 • 1631 次浏览 • 2020-03-26 21:02 • 来自相关话题

因为想做一个表单提交后发现某错误后跳转出去后台的功能,所以用到了$this->error($msg,$url),结果发现跳转完全不起作用。但是$this->success($msg,$url)跳转却可以。
看了看thinkphp官方的代码,没有发现自己传递参数时有啥错误。
代码在thinkphp/traits/controller/jump.php中。
/**
* 操作错误跳转的快捷方法
* @access protected
* @param mixed $msg 提示信息
* @param string $url 跳转的URL地址
* @param mixed $data 返回的数据
* @param integer $wait 跳转等待时间
* @param array $header 发送的Header信息
* @return void
*/
protected function error($msg = '', $url = null, $data = '', $wait = 3, array $header = [])
{
$type = $this->getResponseType();
if (is_null($url)) {
$url = $this->app['request']->isAjax() ? '' : 'javascript:history.back(-1);';
} elseif ('' !== $url) {
$url = (strpos($url, '://') || 0 === strpos($url, '/')) ? $url : $this->app['url']->build($url);

}

$result = [
'code' => 0,
'msg' => $msg,
'data' => $data,
'url' => $url,
'wait' => $wait,
];

if ('html' == strtolower($type)) {
$type = 'jump';
}

$response = Response::create($result, $type)->header($header)->options(['jump_template' => $this->app['config']->get('dispatch_error_tmpl')]);
throw new HttpResponseException($response);
}
然后再看thinkphp文档,发现有一句error方法会自动判断当前请求是否属于Ajax请求,如果属于Ajax请求则会自动转换为default_ajax_return配置的格式返回信息。 success在Ajax请求下不返回信息,需要开发者自行处理。围绕这个找了半天,发现能力有限,确实翻找不到,最终在dolphin.js260行左右找到了代码。
tips(msg, 'danger');对表单提交时候的$this->error();有效,于是在下面加了一句。
if(res.url){
setTimeout(function(){
parent.location.href = res.url;
},res.wait*1000)
}这下可以实现了,但是其实根本的问题没能解决,也算是个BUG吧,请官方看看是哪里的问题。 查看全部
因为想做一个表单提交后发现某错误后跳转出去后台的功能,所以用到了$this->error($msg,$url),结果发现跳转完全不起作用。但是$this->success($msg,$url)跳转却可以。
看了看thinkphp官方的代码,没有发现自己传递参数时有啥错误。
代码在thinkphp/traits/controller/jump.php中。
/**
* 操作错误跳转的快捷方法
* @access protected
* @param mixed $msg 提示信息
* @param string $url 跳转的URL地址
* @param mixed $data 返回的数据
* @param integer $wait 跳转等待时间
* @param array $header 发送的Header信息
* @return void
*/
protected function error($msg = '', $url = null, $data = '', $wait = 3, array $header = [])
{
$type = $this->getResponseType();
if (is_null($url)) {
$url = $this->app['request']->isAjax() ? '' : 'javascript:history.back(-1);';
} elseif ('' !== $url) {
$url = (strpos($url, '://') || 0 === strpos($url, '/')) ? $url : $this->app['url']->build($url);

}

$result = [
'code' => 0,
'msg' => $msg,
'data' => $data,
'url' => $url,
'wait' => $wait,
];

if ('html' == strtolower($type)) {
$type = 'jump';
}

$response = Response::create($result, $type)->header($header)->options(['jump_template' => $this->app['config']->get('dispatch_error_tmpl')]);
throw new HttpResponseException($response);
}

然后再看thinkphp文档,发现有一句
error方法会自动判断当前请求是否属于Ajax请求,如果属于Ajax请求则会自动转换为default_ajax_return配置的格式返回信息。 success在Ajax请求下不返回信息,需要开发者自行处理。
围绕这个找了半天,发现能力有限,确实翻找不到,最终在dolphin.js260行左右找到了代码。
tips(msg, 'danger');
对表单提交时候的$this->error();有效,于是在下面加了一句。
if(res.url){
setTimeout(function(){
parent.location.href = res.url;
},res.wait*1000)
}
这下可以实现了,但是其实根本的问题没能解决,也算是个BUG吧,请官方看看是哪里的问题。

按钮跳转以弹窗的形式,当携带参数id为160时无法进入跳转页面

dolphinphp 回复了问题 • 2 人关注 • 1 个回复 • 1716 次浏览 • 2020-01-03 10:11 • 来自相关话题

新增菜单,点击新增菜单报404错误。旧菜单没问题

回复

yzh 发起了问题 • 1 人关注 • 0 个回复 • 1367 次浏览 • 2019-12-18 10:49 • 来自相关话题

生成模板报_message 未定义

单弦 回复了问题 • 3 人关注 • 2 个回复 • 1829 次浏览 • 2019-12-05 00:23 • 来自相关话题

最新版本 判断按钮授权代码有问题

回复

laozhu1986 发起了问题 • 1 人关注 • 0 个回复 • 1801 次浏览 • 2019-11-22 11:11 • 来自相关话题

图片上传功能,没有记忆目录功能,浏览器没有开启隐身模式

huangda 回复了问题 • 2 人关注 • 1 个回复 • 1246 次浏览 • 2019-10-29 14:40 • 来自相关话题

自定义表单项公共资源无法加载

回复

dqmir 发起了问题 • 1 人关注 • 0 个回复 • 1350 次浏览 • 2019-09-25 18:04 • 来自相关话题

添加用户、角色后,相应的权限给不到

回复

anziyi110 发起了问题 • 2 人关注 • 0 个回复 • 1494 次浏览 • 2019-08-21 09:52 • 来自相关话题

插件商城密码忘了

回复

bdqlaccp 发起了问题 • 1 人关注 • 0 个回复 • 1627 次浏览 • 2019-06-03 16:42 • 来自相关话题

表单下拉多选自动提交不保存数据

回复

benci 发起了问题 • 1 人关注 • 0 个回复 • 1683 次浏览 • 2019-04-27 00:26 • 来自相关话题

1.4版本的文章编辑报错问题

回复

cooltea521 发起了问题 • 2 人关注 • 0 个回复 • 1948 次浏览 • 2019-04-15 17:59 • 来自相关话题

表单百度地图

回复

ly2997 发起了问题 • 1 人关注 • 0 个回复 • 1821 次浏览 • 2019-03-23 09:22 • 来自相关话题

全站 https 还是无法设置吗?

回复

18y 回复了问题 • 1 人关注 • 1 个回复 • 1596 次浏览 • 2019-03-21 17:18 • 来自相关话题

后台登录场景验证无效

回复

jarry 发起了问题 • 1 人关注 • 0 个回复 • 1953 次浏览 • 2019-03-07 21:34 • 来自相关话题

后台门户-常用操作-文档列表-编辑文档-提示未定义数组索引: model

zs381764561 发表了文章 • 2 个评论 • 2120 次浏览 • 2019-02-28 17:59 • 来自相关话题

后台门户-常用操作-文档列表-编辑文档-提示未定义数组索引: model
 
后台门户-常用操作-文档列表-编辑文档-提示未定义数组索引: model
 

系统设置重大bug

dolphinphp 回复了问题 • 2 人关注 • 1 个回复 • 1895 次浏览 • 2019-02-25 00:01 • 来自相关话题

站点开关没有权限

回复

lxj 发起了问题 • 1 人关注 • 0 个回复 • 1554 次浏览 • 2019-02-20 18:28 • 来自相关话题

门户模块自定义字段文章详情页面不能正常显示

回复

lxj 发起了问题 • 1 人关注 • 0 个回复 • 1838 次浏览 • 2019-01-25 18:19 • 来自相关话题

文章编辑器中上传视频保存后下次打开编辑时看不见视频内容

回复

lxj 发起了问题 • 1 人关注 • 0 个回复 • 1658 次浏览 • 2019-01-25 16:57 • 来自相关话题