Laravel 校验规则之字段值唯一性校验

目录(?)[+]

laravel validator unique

'name' => 'required|unique:test,display_name,11,age,extra_field,extraValue'

解释

对于客户端输入的 name 字段
  1. name 不能为空

  2. name 字段值在给定的数据库表中需为唯一值

    // unique 校验规则
    unique:table,column,except,idColumn
    // 举个栗子
    unique:test,display_name,11,age,extra_field,extraValue

    test => 数据库表
    display_name => test 数据表结构中的字段名称
    11,age => except,idColumn // 表示忽略 test 数据表中 age = 11 的数据记录
    extra_field,extraValue => 额外的where条件 {
        // 表示上述规则只会为数据库test表中 extra_field = 'extraValue' 的数据记录做唯一规则的验证
    }
    

ps

注意:校验规则在 laravel 不同版本中有些许变化
举两个laravel版本栗子:
    1. Laravel Framework version 5.1.20 (LTS)

      在这个版本里是可以指定数据库连接

      // _id: 指定的 ID (指定主键) 名称
      ‘email’ => ‘email|unique:mongodb.user,email,’.$uid.’,_id’,

      mongodb.user => [
      mongodb => laravel数据库配置文件 database.php 配置项 connections 数组里面的mongodb连接
      user => mongodb连接的数据库里面的集合或者数据表 user
      ]

    2. Laravel Framework version 4.2.17

      但是,在这个版本里面就不能指定数据库连接,使用laravel默认的数据库连接,

      所以,估计是 laravel 后面考虑到这个情况在后面的版本加了这个功能。

原文地址:https://www.cnblogs.com/caicaizi/p/6134080.html