3.修改跳转页面的模版,本文实例讲述了thinkPHP

时间:2020-04-14 23:16来源:美高梅手机游戏网站
最近把项目升级到tp6.0,一开始比较顺利,安装文档升级,但是升级指导指出: 本文实例讲述了ThinkPHP5.1框架页面跳转及修改跳转页面模版。分享给大家供大家参考,具体如下: 本文实

最近把项目升级到tp6.0,一开始比较顺利,安装文档升级,但是升级指导指出:

本文实例讲述了ThinkPHP5.1框架页面跳转及修改跳转页面模版。分享给大家供大家参考,具体如下:

本文实例讲述了thinkPHP5项目中实现QQ第三方登录功能。分享给大家供大家参考,具体如下:

系统不再提供基础控制器类thinkController ,原来的success 、error 、redirect 和result 方法需要自己在基础控制器类里面实现。

对应的控制器 创建对应的HTML

最近用thinkPHP 5框架做了一个婚纱店的项目,在开发过程中需要用到第三方登录,腾讯官方给的案例是几个文件相互包含实现的,放到tp5里面很悲催的发现在控制器中不能通过include或者require完成预期功能,想要用腾讯官方封的类就必须对其进行修改,修改如下:

这意味着需要自己来实现原来的一系列的函数

admin/index

1. 找到官方SDK里面的核心文件

我这里参考to5.1的跳转源码,进行改进得到,具体步骤如下:

view->lpp->index.html

框架外使用的时候是include 'qqConnectAPI.php',打开这个文件可以看到它是包含了另外几个文件的,comm文件夹下的几个文件无非就是定义一些常量,记录一下你的APP KEY这些信息,都无关紧要,只要把class文件夹下的几个类文件放到tp5里面就好了,而且仔细看一下代码会发现其实只要拿到三个类就完全可以实现功能了。

1、app目录下新建一个tpl文件夹,放入dispatch_jump.tpl文件,这个可以直接到原来的tp5中copy

1.index.html布局

2. 放到tp框架里

2、在config文件夹的app.php中添加配置模板文件的路径

2.index()方法:

tp5推荐将第三方的东西,同时又不是composer安装的统一放到extend目录下,因为可能以后还要做其他扩展,这里将qq登录相关的单独建一个qqlogin文件夹,

// 默认跳转页面对应的模板文件 'dispatch_success_tmpl' => app . '/app/tpl/dispatch_jump.tpl', 'dispatch_error_tmpl' => app . '/app/tpl/dispatch_jump.tpl',
public function index(){ //加载页面 return view();}

可以看到里面只有三个类,我去掉了一个Recorder和一个ErrorCase类,见名知意,这两个的作用是记录一些信息,如access_token,还有异常处理,这里我就直接删掉了。另外注意,按照psr4规范,类名要跟文件名一致,所以要把文件名改一下,同时加上命名空间extendqqlogin,tp5所有的类都要有命名空间。

3、在基类BaseController中添加下面的代码:

index.html输入内容后跳转处理数据的方法

另外为了防止tp5找不到我们需要的文件,最好在config.php文件里注册一条根命名空间,在第30行:

use thinkexceptionHttpResponseException;use thinkResponse;…… /** * 操作成功跳转的快捷方法 * @access protected * @param mixed $msg 提示信息 * @param string $url 跳转的URL地址 * @param mixed $data 返回的数据 * @param integer $wait 跳转等待时间 * @param array $header 发送的Header信息 * @return void */ protected function success($msg = '', string $url = null, $data = '', int $wait = 3, array $header = []) { if  && isset($_SERVER["HTTP_REFERER"])) { $url = $_SERVER["HTTP_REFERER"]; } elseif  { $url =  || 0 === strpos ? $url : $this->app->route->buildUrl; } $result = [ 'code' => 1, 'msg' => $msg, 'data' => $data, 'url' => $url, 'wait' => $wait, ]; $type = $this->getResponseType(); // 把跳转模板的渲染下沉,这样在 response_send 行为里通过getData()获得的数据是一致性的格式 if ('html' == strtolower { $type = 'view'; } $response = Response::create->header->options(['jump_template' => app()->config->get('app.dispatch_success_tmpl')]); throw new HttpResponseException; } /** * 操作错误跳转的快捷方法 * @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 = '', string $url = null, $data = '', int $wait = 3, array $header = []) { if  { $url = $this->request->isAjax() ? '' : 'javascript:history.back;'; } elseif  { $url =  || 0 === strpos ? $url : $this->app->route->buildUrl; } $result = [ 'code' => 0, 'msg' => $msg, 'data' => $data, 'url' => $url, 'wait' => $wait, ]; $type = $this->getResponseType(); if ('html' == strtolower { $type = 'view'; } $response = Response::create->header->options(['jump_template' => app()->config->get('app.dispatch_success_tmpl')]); throw new HttpResponseException; }
//跳转后处理的方法public function bbc(){ //接受数据  $username = $_POST['username']; $password = $_POST['password']; //判断输入的信息 if ($username == 'admin' && $password == 'admin'){ //跳转地址未设置时,默认返回上一个页面 $this->success('登录成功!','Index/diaoyong'); }else{ $this->error; }}
// 注册的根命名空间'root_namespace' => [ 'extendqqlogin' => '../extend/qqlogin/', 'extendbaidu' => '../extend/bdlogin/'],

总结

3.修改跳转页面的模版

3. 改造源代码

以上所述是小编给大家介绍的基于thinkphp6.0的success、error实现方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

a、在app.php文件里面找到设置模版位置

因为QC.php是继承了Oauth.php,我们从后者改起,去掉require_once,加上命名空间这个就不说了,首先看成员属性,类常量是腾讯平台的地址,不用管,原来有三个属性,recorder、error不需要,注释掉或直接删掉。下文同样,要想象跟这两个单词有仇,看到就注释或删掉。

编辑:美高梅手机游戏网站 本文来源:3.修改跳转页面的模版,本文实例讲述了thinkPHP

关键词: