`
flex_莫冲
  • 浏览: 1084977 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

tp5与tp3的区别

    博客分类:
  • php
阅读更多
TP5作了很大的改变,更加灵活,没那么臃肿了,加入了一些令人振奋的功能,例如php7,unittest等,但是很多TP3下养成的习惯,在tp5可能要改改了。

1 路由的变化
tp3中定义路由
'URL_ROUTE_RULES' => array( //定义路由规则
	    '/^password(\/)*$/'               => '/Admin/Auth/password',
	),


这样用http://xx.com/password 和http://xx.com/Admin/Auth/password
都可以访问到同一个地址http://xx.com/Admin/Auth/password

而在tp5中是不行的,见Route.php 1251行
if (isset(self::$rules['name'][$name]) || isset(self::$rules['name'][$name2])) {
                throw new HttpException(404, 'invalid request:' . str_replace('|', $depr, $url));
            }


如果在路由中定义了配置的url,则不允许直接访问,会抛出异常
'password'            =>  ['admin/auth/password', ['method'=>'get']],


用配置的路由访问是正常的,但是不会跳转到admin/auth/password
http://xxx/password

用http://xxx/admin/auth/password 访问会报错
[0] HttpException in Route.php line 1252
非法请求:admin/auth/password

                $route = [$module, $controller, $action];
                // 检查地址是否被定义过路由
                $name  = strtolower($module . '/' . Loader::parseName($controller, 1) . '/' . $action);
                $name2 = '';
                if (empty($module) || isset($bind) && $module == $bind) {
                    $name2 = strtolower(Loader::parseName($controller, 1) . '/' . $action);
                }

                if (isset(self::$rules['name'][$name]) || isset(self::$rules['name'][$name2])) {
                    throw new HttpException(404, 'invalid request:' . str_replace('|', $depr, $url));
                }
            }
            return ['type' => 'module', 'module' => $route];
        }



2 Model的find,select等方法返回的是Model对象,不是数据。可以用getData()获取原始数据。建议在Model中定义方法使用db()来查询数据,在将方法暴露给controller调用。

3 foreach中如果用Model()->save();新增数据,一定要加上->isUpdate(false) 否则只有第一个会是insert,其它都成了update。这个估计是个bug。

分享到:
评论

相关推荐

    664_tp5后台_thinkphp5后台模板+权限管理_tp5后台饼图_

    【标题】"664_tp5后台_thinkphp5后台模板+权限管理_tp5后台饼图_" 涵盖了几个关键的IT知识点,主要集中在使用ThinkPHP5框架开发的后台管理系统,包括模板设计、权限管理和图表展示。下面将详细阐述这些概念。 1. ...

    tp5数据库备份操作tp5数据库备份操作tp5数据库备份操作tp5数据库备份操作

    tp5数据库备份操作tp5数据库备份操作tp5数据库备份操作tp5数据库备份操作tp5数据库备份操作tp5数据库备份操作tp5数据库备份操作tp5数据库备份操作tp5数据库备份操作tp5数据库备份操作tp5数据库备份操作tp5数据库备份...

    tp5 微信支付h5支付

    在本文中,我们将深入探讨如何在ThinkPHP5(简称TP5)框架中集成微信H5支付功能,并结合access_token的定时刷新策略,确保支付过程的稳定性和安全性。 首先,让我们理解微信H5支付的基本概念。微信H5支付是微信支付...

    tp5 转盘抽奖 +随意设置机率和奖品

    2. **概率计算**:在TP5中,可以通过累加各个奖项的概率,然后对比随机数与概率区间来决定哪个奖项被抽中。 3. **防止重复中奖**:为了保证公平性,需要检查用户是否已经中过某个特定的奖,这可以通过查询抽奖记录表...

    tp3集成Workerman

    同时,配置好Workerman的启动文件,让它能够与tp3的业务逻辑相融合。 4. **事件监听**:Workerman允许你定义自定义事件监听器,例如监听TCP连接、断开、数据传输等事件,这在处理实时通信或推送场景中非常有用。你...

    php tp5 入门

    3. 创建项目:通过Composer创建TP5项目,执行`composer create-project topthink/thinkphp5 tp5cms`,其中"tp5cms"是项目名。 四、TP5 CMS项目实战 压缩包中的"tp5cms-master"是一个基于TP5的CMS(内容管理系统)...

    TP5练手项目

    在本项目中,开发者可能旨在熟悉和掌握TP5的核心特性和常见功能。 【描述】"TP5练手项目"可能包含了使用ThinkPHP5框架进行权限认证(Auth认证)以及实现无限级分类的功能模块。权限认证是Web应用中不可或缺的部分,...

    TP5+bootstrap3登录注册

    **标题解析:** "TP5+bootstrap3登录注册" 指的是使用ThinkPHP5框架与Bootstrap3前端框架实现的登录注册功能的示例项目。这个项目可能是为初学者设计的,用来帮助他们理解如何在实际开发中整合这两个工具。 **...

    tp5整合讯飞文字转语音

    在"描述"中提到的“已经封装好,下载即用”,意味着开发者可以找到一个预封装好的TP5插件或者类库,这个组件已经完成了与讯飞TTS服务的对接工作,开发者只需下载并按照说明配置即可快速实现文字转语音的功能。...

    tp5+excel上传下载

    标题中的"tp5+excel上传下载"指的是使用ThinkPHP5框架实现Excel文件的上传与下载功能。ThinkPHP5是PHP开发的一个轻量级框架,它提供了丰富的功能和优秀的性能,适用于快速开发Web应用。在本项目中,开发者利用TP5的...

    tp5通用后台.zip

    TP5支持前后端分离的开发模式,可以与现代化的前端框架如Vue.js、React等无缝对接。这种分离使得后台更专注于API接口的提供,前端则负责用户体验和界面交互。 4. 路由系统 TP5的路由系统灵活强大,支持正则表达式...

    TP5后台权限管理系统.rar

    首先,我们要了解ThinkPHP5(简称TP5)框架。TP5是基于PHP的轻量级开发框架,以其简洁的代码、强大的功能和高效的性能而受到开发者喜爱。它遵循MVC(Model-View-Controller)设计模式,使开发者能更好地分离业务逻辑...

    TP5开发手册

    - **版本与赞助**:TP5(ThinkPHP5.0)版本是由七牛云独家赞助发布的版本。 - **设计理念**:ThinkPHP是一个免费开源的PHP开发框架,旨在简化WEB应用开发流程,通过面向对象的方式实现敏捷开发。 - **特性**:TP5...

    tp5动态读取mysql数据在echarts显示

    标题中的"tp5动态读取mysql数据在echarts显示"是指使用ThinkPHP5框架与ECharts图表库结合,实现从MySQL数据库中动态获取温湿度、烟雾浓度等时间序列数据,并将其可视化展示为折线图的过程。这个过程涉及到前端与后端...

    TP5TP6图片处理为透明圆角图片.rar

    标签中提到了"TP5 TP6 图像处理 圆形",这进一步确认了这个压缩包内容与ThinkPHP5和ThinkPHP6两个版本的框架有关,主要关注的是图像处理,特别是创建圆形或带有圆角的图像。 根据压缩包子文件的文件名称列表,只有...

    tp5框架的使用

    3. **视图**:视图负责展示数据,可以使用TP5的模板引擎来编写,它支持变量赋值、条件判断、循环等基本功能,让开发者可以更专注于界面设计,而不是HTML代码。 4. **数据库交互**:TP5的数据库组件支持多种数据库,...

    H3C各型号路由器L2TP配置汇总.rar

    11 Comware V7平台FW与移动终端对接L2TP over IPSec配置案例 12 L2TP 客户端获取固定ip地址方法 13 MSR与Android、IOS移动终端建立L2TP over IPSec VPN典型配置案例 14 L2TP 拨号成功后,如何实现同时能够访问...

    Tp5微信SDK

    tp5的微信SDK,之前开发用到,网上找了下,希望对各位开发猿有用。

    TP900通讯工具_TP900驱动_tp通讯工具_TP900_

    3. 参数设置:用户可以自定义设置TP900设备的各项参数,如波特率、数据位、停止位、校验方式等。 4. 错误诊断:提供错误日志和故障排除功能,帮助用户快速定位并解决问题。 5. 实时监控:实时显示设备的工作状态和...

    tp5权限管理系统,含数据库,权限分组,权限管理

    本文将围绕“tp5权限管理系统,含数据库,权限分组,权限管理”这一主题,深入探讨其核心概念、实现方式及实际操作步骤。 首先,权限管理系统的基石是数据库设计。在TP5中,通常会涉及三张核心表:用户(User)表,...

Global site tag (gtag.js) - Google Analytics