> ## 检测变量是否被设置
```
方法一:
Request::instance()->has('id','get');
Request::instance()->has('name','post');
方法二:
input('?get.id');
input('?post.name');
```
> ## 获取超全局变量的值
> ### 变量类型方法('变量名/变量修饰符','默认值','过滤方法')
|方法|描述|
|---|---|
|param|获取当前请求的变量|
|get|获取 $_GET 变量|
|post |获取 $_POST 变量|
|put |获取 PUT 变量|
|delete |获取 DELETE 变量|
|session| 获取 $_SESSION 变量|
|cookie |获取 $_COOKIE 变量|
|request |获取 $_REQUEST 变量|
|server |获取 $_SERVER 变量|
|env |获取 $_ENV 变量|
|route |获取 路由(包括PATHINFO) 变量|
|file |获取 $_FILES 变量|
```
第一种获取方法:
// 获取单个变量(其他方法一样)
Request::instance()->param('name');
// 获取所有变量(经过过滤)(其他方法一样)
Request::instance()->param();
// 获取所有变量(原始数据)(其他方法一样)
Request::instance()->param(false);
// 获取所有变量(包含上传文件)
Request::instance()->param(true);
第二种获取方法:
// 获取单个变量(其他方法一样)
input('param.name');
// 获取所有变量(其他方法一样)
input('param.');
或者 // 因为input默认就是采用的param方式获取,所以可以这样简写
input('name');
input('');
```
>## 对请求变量进行过滤与设置不过滤(不要相信任何用户传递过来的数据)
```
第一种方式:在框架配置文件中添加默认过滤规则
// 默认全局过滤方法 用逗号分隔多个
'default_filter' => 'htmlspecialchars',
第二种方式:使用Request对象进行过滤
// 使用PHP内置的方法
Request::instance()->filter('htmlspecialchars'); // 过滤请求对象
Request::instance()->filter(['strip_tags','htmlspecialchars']), // 数组传入多个过滤方法
Request::instance()->param('username','','strip_tags,strtolower'); // 获取param变量 并依次调用strip_tags、strtolower函数过滤
Request::instance()->get('name','','htmlspecialchars'); // 获取get变量 并用htmlspecialchars函数过滤
Request::instance()->post('name','','org\Filter::safeHtml'); // 获取post变量 并用org\Filter类的safeHtml方法过滤
// 使用PHP内置的Filter ID进行过滤(该方式如果不符合会返回false,所以需要和默认值配合使用)
Request::instance()->post('email','',FILTER_VALIDATE_EMAIL);
还可以简写
Request::instance()->post('email','','email');
// 对变量不进行过滤,直接获得原始数据
Request::instance()->get('name','',null); // 获取get变量 并且不进行任何过滤 即使设置了全局过滤
```
> ## 获取请求的部分变量
```
// 只获取id和name变量
Request::instance()->only('id,name');
Request::instance()->only(['id','name']);
// 只获取GET请求的id和name变量
Request::instance()->only(['id','name'],'get');
// 只获取POST请求的id和name变量
Request::instance()->only(['id','name'],'post');
```
> ## 排除请求的部分变量
```
// 排除id和name变量
Request::instance()->except('id,name');
Request::instance()->except(['id','name']);
// 排除GET请求的id和name变量
Request::instance()->except(['id','name'],'get');
// 排除POST请求的id和name变量
Request::instance()->except(['id','name'],'post');
```
>## 变量修饰符(如果不加默认为/s,如果获取的变量是数组一定要加/a才能正确获取)
>### input('变量类型.变量名/修饰符');
>### Request::instance()->变量类型('变量名/修饰符');
```
input('get.id/d');
Request::instance()->get('id/d');
```
|修饰符| 作用|
|---|---|
|s |强制转换为字符串类型|
|d |强制转换为整型类型|
|b |强制转换为布尔类型|
|a |强制转换为数组类型|
|f |强制转换为浮点类型|
- 运行环境需求
- tp5目录结构
- 命令行生成代码
- 路由
- 请求
- 获取请求信息
- 超全局变量获取
- 更改请求变量的值
- 判断是否为某种请求类型
- 伪装表单请求类型
- HTTP头部信息
- 伪静态
- 向请求对象中注入自定义的属性和方法
- 简单的传参可以使用参数绑定
- 依赖注入(将对象注入方法作为参数)
- 将请求的数据进行缓存
- 控制器
- 一个控制器代码示例
- 空控制器
- 资源控制器
- 模型
- 一个模型代码示例
- 模型的四种调用方法
- 控制器中调用模型添加数据
- 控制器中调用模型更新数据
- 控制器中调用模型删除数据
- 控制器中调用模型查询数据
- 模型中使用聚合函数
- 获取器
- 修改器
- 自动写入时间戳
- 只读字段
- 软删除
- 自动类型转换
- 数据自动完成
- 查询范围
- 数组方式访问和转换为数组
- json序列化
- 模型的事件
- 关联模型
- 一对一关联
- 一对多关联
- 远程一对多(跨表关联)
- 多对多关联
- 多态关联
- 关联预载入N+1次查询变2次
- 延迟预载入
- 关联统计
- 视图与模板
- 模板引擎配置
- 分配数据到模板
- 输出替换
- 模板中输出变量
- 模板中输出系统变量(配置常量超全局)
- 模板中输出请求信息
- 模板中使用php函数
- 输出到模板中的变量指定默认值
- 模板中进行运算
- 原样输出代码不解析
- 模版中注释
- 模板布局与继承
- 文件包含
- 内置标签
- 循环输出标签
- 比较标签
- 条件判断标签
- 引入资源文件(js-css)
- 使用原生php
- 在模板中定义变量和常量
- 助手函数
- 常用功能
- 表单验证
- 验证器的定义
- 自定义验证规则
- 速查表
- 系统默认根命名空间
- 系统路径常量
- 请求变量
- URL请求和信息方法