小可ThinkPHP学堂

?找回密码
?立即注册
搜索
热搜: 活动 交友 discuz
查看: 309|回复: 0
打印 上一主题 下一主题

[ThinkPHP] ThinkPHP5.1验证器规则和提示的几种写法

[复制链接]

41

主题

41

帖子

192

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
192
跳转到指定楼层
楼主
发表于 2019-9-8 22:29:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

ThinkPHP5.1自带的验证器需要设置规则和提示,有以下几种写法,假设有一个字段name,必须、表中唯一、最大长度10

一、使用竖线进行规则分割,但有时候正则表达式中有竖线的情况下会出现问题,所以如果有正则表达式时尽量不要用这种方法。

  1. protected $rule = [
  2. ? ?? ???'name'??=>??'require|max:10|unique:category'
  3. ? ? ];

  4. protected $message = [
  5. ? ?? ???'name.require'??=>??'请输入分类名称',
  6. ? ?? ???'name.max'??=>??'分类名称最大长度为10',
  7. ? ?? ???'name.unique'? ?=>??'该分类已存在',
  8. ? ? ];
复制代码

二、使用数组的方式进行定义,个人比较推荐这种方式,不会因为正则表达式出现问题,最重要的是结构比较清晰,再多的规则也不会混乱,规则如果太多可以通过换行的方式使结构依然清晰。

  1. ? ? protected $rule = [
  2. ? ?? ?? ?? ?? ? 'name'??=>??['require','max'=>10,'unique'=>'category']
  3. ? ???];

  4. ? ? protected $message = [
  5. ? ?? ?? ?? ?? ? 'name.require'??=>??'请输入分类名称',
  6. ? ?? ?? ?? ?? ? 'name.max'??=>??'分类名称最大长度为10',
  7. ? ?? ?? ?? ?? ? 'name.unique'? ?=>??'该分类已存在',
  8. ? ?? ???];
复制代码

三、THinkPHP5.0中还可以规则和错误提示一起定义,对于一些比较简单的规则还是比较方便的,缺点同样也是非常明显,一个是正则表达式的问题,还一个就是这种结构更不利于阅读。


  1. protected??$rule = [
  2. ? ?? ?? ?? ?? ? ['name', 'require|max:10|unique:category', '请输入分类名称|类名称最大长度为10|该分类已存在'],
  3. ? ?? ???];
复制代码



By小可老师

2019年9月8日

转载请标明出处

可以加QQ群415216728进行交流。


公众号搜小可ThinkPHP学堂

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表