php注释验证,注解验证 · ThinkPHP6.0完全开发手册 · 看云
## 注解验证器
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完全开发手册 · 看云相关推荐
- php thinkphp中间件,中间件 · ThinkPHP6.0完全开发手册 · 看云
中间件主要用于拦截或过滤应用的`HTTP`请求,并进行必要的业务处理. >[danger] 新版部分核心功能使用中间件处理,你可以灵活关闭.包括Session功能.请求缓存和多语言功能. ## ...
- php 获取路由参数,路由参数 · ThinkPHP5.0完全开发手册 · 看云
## 路由参数 路由参数是指可以设置一些路由匹配的条件参数,主要用于验证当前的路由规则是否有效,主要包括: |参数|说明| |---|---| |method|请求类型检测,支持多个请求类型| |ex ...
- think php上传图片,上传 · ThinkPHP5.0完全开发手册 · 看云
## 上传文件 `ThinkPHP5.0`对文件上传的支持更加简单. > 内置的上传只是上传到本地服务器,上传到远程或者第三方平台的话需要自己扩展. 假设表单代码如下: ~~~ ~~~ 然后在控 ...
- 多语言php,多语言 · ThinkPHP5.0完全开发手册 · 看云
ThinkPHP内置通过`\think\Lang`类提供多语言支持,如果你的应用涉及到国际化的支持,那么可以定义相关的语言包文件.任何字符串形式的输出,都可以定义语言常量. ## 开启和加载语言包 默 ...
- php控制器的作用,控制器定义 · ThinkPHP5.0完全开发手册 · 看云
ThinkPHP V5.0的控制器定义比较灵活,可以无需继承任何的基础类,也可以继承官方封装的`\think\Controller`类或者其他的控制器类. ## 控制器定义 一个典型的控制器类定义如下 ...
- php标签扩展,标签扩展 · ThinkPHP5.0完全开发手册 · 看云
## 标签库加载 模板中加载标签库,预加载自定义标签库,扩展内置标签库的加载 请参考:模板/标签库 >[info]建议开发者将自定义标签库请放置应用目录中,请勿放在框架系统目录内,以免使用`Co ...
- php 实现域名路由器,域名路由 · ThinkPHP5.0完全开发手册 · 看云
ThinkPHP支持完整域名.子域名和IP部署的路由和绑定功能,同时还可以起到简化URL的作用. 要启用域名部署路由功能,首先需要开启: ~~~ 'url_domain_deploy' => t ...
- php 分布式数据库查询,分布式数据库 · Thinkphp5.0完全开发手册 · 看云
# 分布式数据库 ThinkPHP内置了分布式数据库的支持,包括主从式数据库的读写分离,但是分布式数据库必须是相同的数据库类型. 配置`database.deploy` 为1 可以采用分布式数据库支持 ...
- 比较标签 php,比较标签 · ThinkPHP5.0完全开发手册 · 看云
比较标签用于简单的变量比较,复杂的判断条件可以用if标签替换,比较标签是一组标签的集合,基本上用法都一致,如下: ~~~ {比较标签 name="变量" value="值 ...
最新文章
- [oracle]常用SQL汇总
- python动态图-python之最炫抖音动态图
- Machine Learning课程 by Andrew Ng
- lajp mysql安装_Php调用java说明
- IOS之仿微信运动项目
- 小心 HttpClient 中的 FormUrlEncodeContent 的 bug
- 回车(CR)与换行(LF), '\r'和'\n'的区别
- [css] 说说position:sticky有什么应用场景
- 快准狠!Intel论文揭示自家车牌识别算法:LPRNet
- 这家共享单车确认已坑12.5万用户 总金额超2512万元
- cv2.imread读取图像结果none_PyTorch 42.图像操作
- mybatis源码解析 - 通过一个简单查询例子分析流程
- 指令篇:文件的创建和时间修改___touch
- 修改一行代码,将图像匹配效果提升14%
- 分享一个学习充电的电子书下载网站(目前可以免费下载电子书)
- awk , 统计secure.log中 每个破解你密码的ip的出现次数|access.log 中 每个ip地址出现的次数...
- 计算机xp系统恢复以前设置,如何设置xp系统一键还原
- 如何使用Blender制作360度全景图和全景视频?
- Android 高德地图so包太大,高德地图包变大问题解决方案
- COM高级应用-Automation(自动化)已是昨日黄花不再高级?
热门文章
- keil5安装_keil5,软件安装包及安装教程
- html如何显示带有记号的文本,如何使用Wicket设置HTML锚标记的显示文本?
- python 支持向量机 导出参数_SVM支持向量机推导,工具介绍及python实现
- 干货 | 深度剖析C语言的main函数
- 漫画:程序员相亲?哈哈哈哈哈哈
- TIOBE 11月编程语言排行:Java首次跌出前二,Python 势不可挡。
- 这个学校的毕业典礼,火了。
- 快递信息管理系统源代码c++_学生信息管理系统C语言版
- java ftp commonsnet_用Java下载整个FTP目录(Apache Net Commons)
- ttl接地是高电平还是低电平_(音源很重要)18新汉兰达音响改装升级原车主机改低电平RCA输出...