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后台饼图_" 涵盖了几个关键的IT知识点,主要集中在使用ThinkPHP5框架开发的后台管理系统,包括模板设计、权限管理和图表展示。下面将详细阐述这些概念。 1. ...
tp5数据库备份操作tp5数据库备份操作tp5数据库备份操作tp5数据库备份操作tp5数据库备份操作tp5数据库备份操作tp5数据库备份操作tp5数据库备份操作tp5数据库备份操作tp5数据库备份操作tp5数据库备份操作tp5数据库备份...
在本文中,我们将深入探讨如何在ThinkPHP5(简称TP5)框架中集成微信H5支付功能,并结合access_token的定时刷新策略,确保支付过程的稳定性和安全性。 首先,让我们理解微信H5支付的基本概念。微信H5支付是微信支付...
2. **概率计算**:在TP5中,可以通过累加各个奖项的概率,然后对比随机数与概率区间来决定哪个奖项被抽中。 3. **防止重复中奖**:为了保证公平性,需要检查用户是否已经中过某个特定的奖,这可以通过查询抽奖记录表...
同时,配置好Workerman的启动文件,让它能够与tp3的业务逻辑相融合。 4. **事件监听**:Workerman允许你定义自定义事件监听器,例如监听TCP连接、断开、数据传输等事件,这在处理实时通信或推送场景中非常有用。你...
3. 创建项目:通过Composer创建TP5项目,执行`composer create-project topthink/thinkphp5 tp5cms`,其中"tp5cms"是项目名。 四、TP5 CMS项目实战 压缩包中的"tp5cms-master"是一个基于TP5的CMS(内容管理系统)...
在本项目中,开发者可能旨在熟悉和掌握TP5的核心特性和常见功能。 【描述】"TP5练手项目"可能包含了使用ThinkPHP5框架进行权限认证(Auth认证)以及实现无限级分类的功能模块。权限认证是Web应用中不可或缺的部分,...
**标题解析:** "TP5+bootstrap3登录注册" 指的是使用ThinkPHP5框架与Bootstrap3前端框架实现的登录注册功能的示例项目。这个项目可能是为初学者设计的,用来帮助他们理解如何在实际开发中整合这两个工具。 **...
TP5支持前后端分离的开发模式,可以与现代化的前端框架如Vue.js、React等无缝对接。这种分离使得后台更专注于API接口的提供,前端则负责用户体验和界面交互。 4. 路由系统 TP5的路由系统灵活强大,支持正则表达式...
在"描述"中提到的“已经封装好,下载即用”,意味着开发者可以找到一个预封装好的TP5插件或者类库,这个组件已经完成了与讯飞TTS服务的对接工作,开发者只需下载并按照说明配置即可快速实现文字转语音的功能。...
总的来说,《TP5完全开发手册》提供了一个全面的知识体系,覆盖了ThinkPHP5.0框架的方方面面,是开发者进行ThinkPHP项目开发不可或缺的参考手册。不过,手册本身不代替教程,而是作为工具参考使用。对于新手来说,...
标题中的"tp5+excel上传下载"指的是使用ThinkPHP5框架实现Excel文件的上传与下载功能。ThinkPHP5是PHP开发的一个轻量级框架,它提供了丰富的功能和优秀的性能,适用于快速开发Web应用。在本项目中,开发者利用TP5的...
- **版本与赞助**:TP5(ThinkPHP5.0)版本是由七牛云独家赞助发布的版本。 - **设计理念**:ThinkPHP是一个免费开源的PHP开发框架,旨在简化WEB应用开发流程,通过面向对象的方式实现敏捷开发。 - **特性**:TP5...
标题中的"tp5动态读取mysql数据在echarts显示"是指使用ThinkPHP5框架与ECharts图表库结合,实现从MySQL数据库中动态获取温湿度、烟雾浓度等时间序列数据,并将其可视化展示为折线图的过程。这个过程涉及到前端与后端...
首先,我们要了解ThinkPHP5(简称TP5)框架。TP5是基于PHP的轻量级开发框架,以其简洁的代码、强大的功能和高效的性能而受到开发者喜爱。它遵循MVC(Model-View-Controller)设计模式,使开发者能更好地分离业务逻辑...
标签 "PHPExcel tp5" 暗示这个话题是关于使用PHPExcel库与TP5框架的结合,这意味着你需要理解这两个技术的原理和用法。在实际应用中,你可能还会遇到错误处理、性能优化、数据验证等问题,这些都是在开发过程中需要...
标签中提到了"TP5 TP6 图像处理 圆形",这进一步确认了这个压缩包内容与ThinkPHP5和ThinkPHP6两个版本的框架有关,主要关注的是图像处理,特别是创建圆形或带有圆角的图像。 根据压缩包子文件的文件名称列表,只有...
《TP5框架完整版:深度解析与应用指南》 TP5(ThinkPHP 5)是基于PHP语言的轻量级、高效能的开源Web开发框架,以其简洁的代码结构、强大的功能特性、易于上手的特性深受开发者喜爱。本指南将深入探讨TP5框架的核心...
3. **视图**:视图负责展示数据,可以使用TP5的模板引擎来编写,它支持变量赋值、条件判断、循环等基本功能,让开发者可以更专注于界面设计,而不是HTML代码。 4. **数据库交互**:TP5的数据库组件支持多种数据库,...
11 Comware V7平台FW与移动终端对接L2TP over IPSec配置案例 12 L2TP 客户端获取固定ip地址方法 13 MSR与Android、IOS移动终端建立L2TP over IPSec VPN典型配置案例 14 L2TP 拨号成功后,如何实现同时能够访问...