当前位置: 首页 > article >正文

ThinkPHP6使用Validate验证表单字段唯一

ThinkPHP6使用Validate验证表单字段唯一

1.创建用户验证文件,如User

1.1 单应用创建验证文件

php think make:validate User

1.2 多应用创建验证文件,admin为应用名,

php think make:validate admin@User

创建成功后,应用内会生成一个validate文件夹,在validate文件夹里会生成User.php的验证文件

2.创建成功后代码

<?php
declare (strict_types = 1);

namespace app\base\validate;

use think\Validate;

class User extends Validate
{
    /**
     * 定义验证规则
     * 格式:'字段名' =>  ['规则1','规则2'...]
     *
     * @var array
     */
    protected $rule = [];

    /**
     * 定义错误信息
     * 格式:'字段名.规则名' =>  '错误信息'
     *
     * @var array
     */
    protected $message = [];
}

3.如验证用户名唯一

<?php
declare (strict_types = 1);

namespace app\base\validate;

use think\Validate;

class User extends Validate
{
    /**
     * 定义验证规则
     * 格式:'字段名' =>  ['规则1','规则2'...]
     *
     * @var array
     */
    protected $rule = [
        'username' => 'require|unique:\app\model\User'
    ];

    /**
     * 定义错误信息
     * 格式:'字段名.规则名' =>  '错误信息'
     *
     * @var array
     */
    protected $message = [
        'username.require' => '用户名必填',
        'username.unique' => '用户名唯一'
    ];
}

\app\model\User为用户模型,用户模型可以通过模型文件设置文件的连接设置,数据表的名称等等相关的设置,可以解决数据表前缀与数据库默认设置前缀不一样的问题

<?php
declare (strict_types = 1);

namespace app\base\validate;

use think\Validate;

class User extends Validate
{
    /**
     * 定义验证规则
     * 格式:'字段名' =>  ['规则1','规则2'...]
     *
     * @var array
     */
    protected $rule = [
        'username' => 'require|unique:user' // 指定验证表
    ];

    /**
     * 定义错误信息
     * 格式:'字段名.规则名' =>  '错误信息'
     *
     * @var array
     */
    protected $message = [
        'username.require' => '用户名必填',
        'username.unique' => '用户名唯一'
    ];
}

上面代码中的unique:user为验证指定表的唯一字段,user为表名,前缀为数据库默认设置的前缀,如果前缀不变的情况下,需要验证表字段唯一的则可以直接使用表名做验证


http://www.kler.cn/a/160969.html

相关文章:

  • mysql 更改 字段长度
  • MySQL如何利用索引优化ORDER BY排序语句
  • 大数据新视界 -- 大数据大厂之 Impala 性能优化:优化数据加载的实战技巧(下)(16/30)
  • nvm 安装指定node版本时--list 显示为空
  • C#-命名空间
  • MIT 6.S081 Lab1: Xv6 and Unix utilities翻译
  • 【每日一题】重新规划路线
  • 【C++初阶】六、类和对象(初始化列表、static成员、友元、内部类)
  • 脉冲压缩及MATLAB仿真
  • 数组常用方法
  • 剧本杀小程序搭建:打造线上剧本杀新体验
  • HTML 块级元素与行内元素有哪些以及注意、总结
  • EasyExcel如何读取全部Sheet页数据方法
  • leetcode刷题:611.有效三角形的个数(双指针实现)
  • C++中单引号‘‘和双引号““的区别
  • Linux内核上游提交完整流程及示例
  • 多人聊天室
  • Python实现广义线性回归模型(statsmodels GLM算法)项目实战
  • Oracle 查询语句限制只选择最前面几行,和最后面几行的实现方式。
  • GAN:WGAN前作
  • 【玩转TableAgent 数据智能分析】-- 数据分析不再是专业人士的专利
  • 如何使用Net2FTP轻松部署本地Web文件管理器并远程访问管理内网资源?
  • [⑦ADRV902x]: JESD204学习笔记
  • 【Spark基础】-- 宽窄依赖
  • 【学习笔记】插值之拉格朗日插值(Lagrange)
  • springboot中@Builder注解的详细用法实例,跟数据库结合。