ThinkPHP小白新建一个报表流程心得
先总结流程,
比如创建一个订单分析的表格:
要求:统计订单中一下各省的支付成功人数
条件:有订单数据表pay_order,其中用户名字段pay_id,网络字段isp,地址位置字段areapro,支付成功字段state=1
总的流程:
①创建控制方法 /application/admin/controller/index.php里面创建orderanelyze方法,
②创建视图文件 /public/admin 创建orderanelyze.html视图文件
③ 创建路由 /route//route.php 创建路由 Route::any(‘orderanalyze’, ‘index/index/orderanalyze’);
④ 创建后台路径 \application\index\controller\Index.php 创建相应代码,搜索订单列表见模板
知识点:
①/application是thinkphp什么文件夹
在thinkphp框架中,/application文件夹是用于存放应用程序的主要文件夹。它包含了控制器、模型、视图、配置文件等。具体细节如下:
- /application/controller:存放控制器文件,用于处理用户请求和业务逻辑。
- /application/model:存放模型文件,用于与数据库交互并处理数据操作。
- /application/view:存放视图文件,即前端页面的展示模板。
- /application/config:存放配置文件,如数据库连接配置、路由配置等。
- /application/common:存放公共函数、助手函数等可以在整个应用程序中共享使用的文件。
- /application/command:存放命令行脚本文件,用于执行一些定时任务或其他脚本操作。
- /application/lang:存放多语言文件,用于国际化和本地化。
- /application/validate:存放验证器文件,用于验证请求参数的合法性。
这些文件夹及其内容可以根据应用的需求进行扩展和定制。
②路由地址:
在ThinkPHP框架中,路由地址的定义和解析是通过路由配置文件完成的。您需要在ThinkPHP的路由配置文件中找到对应的路由规则,来确定 “admin/index/orderanalyze” 实际对应的控制器和方法。
通常,路由配置文件是位于 route
目录下的 route.php
文件,您可以在该文件中查找类似以下的路由定义:
Route::any('orderanalyze', 'index/index/orderanalyze');
这个路由配置项指定了一个路由规则,以匹配 URL 路径 “/orderanalyze” 并将其转发到 “index/index/orderanalyze” 方法处理。
根据路由规则的配置,当访问 “/orderanalyze” 路径时,系统会调用 “application/admin/controller/index.php” 控制器文件中的 “orderanalyze” 方法来处理请求。
③控制器方法的定义
控制器文件通常位于应用(或模块)目录下的controller
目录中,可以是默认的IndexController.php
文件,也可以是其他按照实际业务逻辑命名的控制器文件
③视图文件的layui的表格模块(table)
如有代码如下
myTable = table.render({
elem: '#demo'
,height: 'full-160'
,url: 'admin/index/orderanalyze'
,toolbar: '#toolbarDemo'
,where: {
state:$("#state").val(),
type:$("#type").val()
}
这段代码使用了layui的表格模块(table),通过table.render方法初始化了一个表格实例myTable,并进行了相应的参数配置。
elem
指定了表格容器的选择器,这里选择的是id为’demo’的元素作为表格容器。height
设置了表格的高度,这里是’full-160’,表示高度为屏幕高度减去160px。url
指定了表格数据的获取地址,这里是’admin/index/orderanalyze’,即从该地址获取数据。toolbar
指定了表格的工具栏选择器,这里是’#toolbarDemo’,表示使用id为’toolbarDemo’的元素作为工具栏。where
用于传递额外的参数给后台接口,这里获取了id为’state’和’type’的元素的值,并传递给后台接口。
通过这些配置,表格实例myTable将会在指定的表格容器中展示表格数据,并根据配置的url地址去后台获取数据。同时还有工具栏的配置和额外参数的传递。接下来可能还会根据需要添加更多的表格功能和样式配置。
具体代码