## 注解验证器

ThinkPHP支持使用注解方式定义路由和验证,需要安装额外的扩展:

```

composer require topthink/think-annotation

```

然后可以直接在控制器类的方法注释中定义,例如:

~~~

namespace app\controller;

use think\annotation\Route;

use think\annotation\route\Validate;

use app\validate\IndexValidate;

class Index

{

/**

* @Validate(IndexValidate::class,scene="create",batch="true")

* @return mixed

* @Route("hello")

*/

public function hello()

{

return 'hello, TP6 Annotation Validate';

}

}

~~~

`@Route("hello/:name")` 和 `@Validate(IndexValidate::class)` 就是注解路由和验证器的内容,请务必注意注释的规范,不能在注解路由里面使用单引号,否则可能导致注解路由解析失败,可以利用IDE生成规范的注释。如果你使用`PHPStorm`的话,建议安装`PHP Annotations`插件:[https://plugins.jetbrains.com/plugin/7320-php-annotations](https://plugins.jetbrains.com/plugin/7320-php-annotations),可以支持注解的自动完成。

然后需要声明上面引用验证器类,例如:

~~~

namespace app\validate;

use think\Validate;

class IndexValidate extends Validate

{

protected $rule = [

'name' => 'require'

];

protected $message = [

'name.require' => '姓名必须填写',

];

protected $scene = [

'create' => ['name'],

];

}

~~~

>[danger] 该方式定义的路由在调试模式下面实时生效,部署模式则在第一次访问的时候生成注解缓存。

### 注解验证器参数说明

> `value`参数,可以不写`value=`,直接抒写值就可以了

| 参数名 | 参数类型 | 参数默认值 | 参数说明 |

| --- | --- | --- | --- |

| value | string | | 验证器 |

| scene | string | | 验证场景 |

| batch | bool | true | 统一验证:true=是,flase=不是 |

| message | array | [] | 错误内容 |

### 错误访问示例:

~~~

http://127.0.0.1:8000/hello

~~~

页面输出

![](https://img.kancloud.cn/eb/ca/ebcad4f348acf4c8f734d371ea8a6788_1002x142.png)

### 正确访问示例:

~~~

http://127.0.0.1:8000/hello?name=zhans

~~~

页面输出

![](https://img.kancloud.cn/54/9e/549eb02a19ac36e85f816ab32eb7d41d_2334x278.png)

php注释验证,注解验证 · ThinkPHP6.0完全开发手册 · 看云相关推荐

  1. php thinkphp中间件,中间件 · ThinkPHP6.0完全开发手册 · 看云

    中间件主要用于拦截或过滤应用的`HTTP`请求,并进行必要的业务处理. >[danger] 新版部分核心功能使用中间件处理,你可以灵活关闭.包括Session功能.请求缓存和多语言功能. ## ...

  2. php 获取路由参数,路由参数 · ThinkPHP5.0完全开发手册 · 看云

    ## 路由参数 路由参数是指可以设置一些路由匹配的条件参数,主要用于验证当前的路由规则是否有效,主要包括: |参数|说明| |---|---| |method|请求类型检测,支持多个请求类型| |ex ...

  3. think php上传图片,上传 · ThinkPHP5.0完全开发手册 · 看云

    ## 上传文件 `ThinkPHP5.0`对文件上传的支持更加简单. > 内置的上传只是上传到本地服务器,上传到远程或者第三方平台的话需要自己扩展. 假设表单代码如下: ~~~ ~~~ 然后在控 ...

  4. 多语言php,多语言 · ThinkPHP5.0完全开发手册 · 看云

    ThinkPHP内置通过`\think\Lang`类提供多语言支持,如果你的应用涉及到国际化的支持,那么可以定义相关的语言包文件.任何字符串形式的输出,都可以定义语言常量. ## 开启和加载语言包 默 ...

  5. php控制器的作用,控制器定义 · ThinkPHP5.0完全开发手册 · 看云

    ThinkPHP V5.0的控制器定义比较灵活,可以无需继承任何的基础类,也可以继承官方封装的`\think\Controller`类或者其他的控制器类. ## 控制器定义 一个典型的控制器类定义如下 ...

  6. php标签扩展,标签扩展 · ThinkPHP5.0完全开发手册 · 看云

    ## 标签库加载 模板中加载标签库,预加载自定义标签库,扩展内置标签库的加载 请参考:模板/标签库 >[info]建议开发者将自定义标签库请放置应用目录中,请勿放在框架系统目录内,以免使用`Co ...

  7. php 实现域名路由器,域名路由 · ThinkPHP5.0完全开发手册 · 看云

    ThinkPHP支持完整域名.子域名和IP部署的路由和绑定功能,同时还可以起到简化URL的作用. 要启用域名部署路由功能,首先需要开启: ~~~ 'url_domain_deploy' => t ...

  8. php 分布式数据库查询,分布式数据库 · Thinkphp5.0完全开发手册 · 看云

    # 分布式数据库 ThinkPHP内置了分布式数据库的支持,包括主从式数据库的读写分离,但是分布式数据库必须是相同的数据库类型. 配置`database.deploy` 为1 可以采用分布式数据库支持 ...

  9. 比较标签 php,比较标签 · ThinkPHP5.0完全开发手册 · 看云

    比较标签用于简单的变量比较,复杂的判断条件可以用if标签替换,比较标签是一组标签的集合,基本上用法都一致,如下: ~~~ {比较标签 name="变量" value="值 ...

最新文章

  1. [oracle]常用SQL汇总
  2. python动态图-python之最炫抖音动态图
  3. Machine Learning课程 by Andrew Ng
  4. lajp mysql安装_Php调用java说明
  5. IOS之仿微信运动项目
  6. 小心 HttpClient 中的 FormUrlEncodeContent 的 bug
  7. 回车(CR)与换行(LF), '\r'和'\n'的区别
  8. [css] 说说position:sticky有什么应用场景
  9. 快准狠!Intel论文揭示自家车牌识别算法:LPRNet
  10. 这家共享单车确认已坑12.5万用户 总金额超2512万元
  11. cv2.imread读取图像结果none_PyTorch 42.图像操作
  12. mybatis源码解析 - 通过一个简单查询例子分析流程
  13. 指令篇:文件的创建和时间修改___touch
  14. 修改一行代码,将图像匹配效果提升14%
  15. 分享一个学习充电的电子书下载网站(目前可以免费下载电子书)
  16. awk , 统计secure.log中 每个破解你密码的ip的出现次数|access.log 中 每个ip地址出现的次数...
  17. 计算机xp系统恢复以前设置,如何设置xp系统一键还原
  18. 如何使用Blender制作360度全景图和全景视频?
  19. Android 高德地图so包太大,高德地图包变大问题解决方案
  20. COM高级应用-Automation(自动化)已是昨日黄花不再高级?

热门文章

  1. keil5安装_keil5,软件安装包及安装教程
  2. html如何显示带有记号的文本,如何使用Wicket设置HTML锚标记的显示文本?
  3. python 支持向量机 导出参数_SVM支持向量机推导,工具介绍及python实现
  4. 干货 | 深度剖析C语言的main函数
  5. 漫画:程序员相亲?哈哈哈哈哈哈
  6. TIOBE 11月编程语言排行:Java首次跌出前二,Python 势不可挡。
  7. 这个学校的毕业典礼,火了。
  8. 快递信息管理系统源代码c++_学生信息管理系统C语言版
  9. java ftp commonsnet_用Java下载整个FTP目录(Apache Net Commons)
  10. ttl接地是高电平还是低电平_(音源很重要)18新汉兰达音响改装升级原车主机改低电平RCA输出...