批改状态:合格
老师批语:
// 条件搜索// withSearch() 触发搜索器 传入两个数组// 参数1:需要搜索的字段 参数2:关联数组,键为字段,值为查询条件的值public function whereSearch(){User::withSearch(['name', 'status'], ['name' => '于','status' => '1'])->select();}// 搜索器 三个参数// 使用withSearch()时触发// $query: sql语句对象// $value: 使用withSearch()触发时,关联数组的当前值 '于'// $data: 使用withSearch()触发时,关联数组的所有值 ['于','1']public function searchNameAttr($query, $value, $data){dump($query);dump($value);dump($data);$ret = $query->where('name', 'like', $value . '%');dump($ret);}// 搜索器public function searchStatusAttr($query, $value, $data){$query->where('status', '=', $value);}

<?phpnamespace app\controller;use app\BaseController;// 引入普通(动态)类use think\Db;use think\Request;class tp0831 extends BaseController{// 在方法中通过参数方式依赖注入public function tp0831(Db $db, Request $request){// 参数方式调用$db->table()->slect();$request->method();}}
<?phpnamespace app\controller;use app\BaseController;// 引入门面类use think\facade\Db;use think\facade\Request;class tp0831 extends BaseController{public function tp0831(){// 门面类直接以静态的方式使用Db::table()->slect();Request::method();}}
thinkphp 动态类和门面类的引入 如下:
ThinkPHP提供了一些内置的调试工具和函数
Trace调试功能就是ThinkPHP提供给开发人员的一个用于开发调试的辅助工具。可以实时显示当前页面或者请求的请求信息、运行情况、SQL执行、错误信息和调试信息等,并支持自定义显示,并且支持没有页面输出的操作调试。在创建tp项目时已经内置安装,不需要手动安装
如果部署到服务器的话,你可以通过下面方式安装composer install --no-dev
当项目部署到服务器正式运行时,不建议使用,因为用户不希望看见调试信息
开启Trace调试功能
xxx.env文件 删除.env的前缀.env 中找到APP_DEBUG配置项,并将其设置为true
开启Trace调试功能后,页面右下角会有一个logo,点开后即可看见调试信息


配合dump()调试函数使用


系统为一些常用的操作方法封装了助手函数,便于使用,包含如下:
| 序号 | 助手函数 | 描述 |
|---|---|---|
| 1 | abort |
中断执行并发送HTTP状态码 |
| 2 | app |
快速获取容器中的实例 支持依赖注入 |
| 3 | bind |
快速绑定对象实例 |
| 4 | cache |
缓存管理 |
| 5 | class_basename |
获取类名(不包含命名空间) |
| 6 | class_uses_recursive |
获取一个类里所有用到的trait |
| 7 | config |
获取和设置配置参数 |
| 8 | cookie |
Cookie管理 |
| 9 | download |
获取\think\response\File对象实例 |
| 11 | dump |
浏览器友好的变量输出 |
| 12 | env |
获取环境变量 |
| 13 | event |
触发事件 |
| 14 | halt |
变量调试输出并中断执行 |
| 15 | input |
获取输入数据 支持默认值和过滤 |
| 16 | invoke |
调用反射执行callable 支持依赖注入 |
| 17 | json |
JSON数据输出 |
| 18 | jsonp |
JSONP数据输出 |
| 19 | lang |
获取语言变量值 |
| 20 | parse_name |
字符串命名风格转换 |
| 21 | redirect |
重定向输出 |
| 22 | request |
获取当前Request对象 |
| 23 | response |
实例化Response对象 |
| 24 | session |
Session管理 |
| 25 | token |
生成表单令牌输出 |
| 26 | trace |
记录日志信息 |
| 27 | trait_uses_recursive |
获取一个trait里所有引用到的trait |
| 28 | url |
Url生成 |
| 29 | validate |
实例化验证器 |
| 30 | view |
渲染模板输出 |
| 31 | display |
渲染内容输出 |
| 32 | xml |
XML数据输出 |
| 33 | app_path |
当前应用目录 |
| 34 | base_path |
应用基础目录 |
| 35 | config_path |
应用配置目录 |
| 36 | public_path |
应用根目录 |
| 37 | root_path |
中断执行并发送HTTP状态码 |
| 38 | runtime_path |
应用运行时目录 |
可以在应用的公共函数文件中重写上面这些助手函数。
需要使用composer require topthink/think-multi-app来安装多应用模块

在app目录下创建应用

完整目录解构 如下
www WEB部署目录(或者子目录)├─app 应用目录│ ├─index 项目1│ │ ├─controller 控制器目录│ ├ ├─model 模型目录│ ├ ├─view 视图目录│ ├─admin 项目2│ │ ├─controller 控制器目录│ ├ ├─model 模型目录│ ├ ├─view 视图目录│ ├─ ... 更多类库目录│ ││ ├─BaseController.php 默认基础控制器类│ ├─ExceptionHandle.php 应用异常定义文件│ ├─common.php 全局公共函数文件│ ├─middleware.php 全局中间件定义文件│ ├─provider.php 服务提供定义文件│ ├─Request.php 应用请求对象│ └─event.php 全局事件定义文件│├─config 配置目录│ ├─app.php 应用配置│ ├─cache.php 缓存配置│ ├─console.php 控制台配置│ ├─cookie.php Cookie配置│ ├─database.php 数据库配置│ ├─filesystem.php 文件磁盘配置│ ├─lang.php 多语言配置│ ├─log.php 日志配置│ ├─middleware.php 中间件配置│ ├─route.php URL和路由配置│ ├─session.php Session配置│ ├─trace.php Trace配置│ └─view.php 视图配置│├─view 视图目录├─route 路由定义目录│ ├─route.php 路由定义文件│ └─ ...│├─public WEB目录(对外访问目录)│ ├─index.php 入口文件│ ├─router.php 快速测试文件│ └─.htaccess 用于apache的重写│├─extend 扩展类库目录├─runtime 应用的运行时目录(可写,可定制)├─vendor Composer类库目录├─.example.env 环境变量示例文件├─composer.json composer 定义文件├─LICENSE.txt 授权说明文件├─README.md README 文件└─think 命令行入口文件
<?phpnamespace app\index\controller;use app\BaseController;class Index extends BaseController{public function index(){echo '前台应用';}}
<?phpnamespace app\admin\controller;use app\BaseController;class Admin extends BaseController{public function admin(){echo '后台应用';}}

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号