unique 验证规则后接 . Auth::id () 的作用是?
24

不明白
'name' => 'required|between:3,25|regex:/^[A-Za-z0-9\-\_]+$/|unique:users,name,' . Auth::id()
. Auth::id() 是什么作用,后面接了个点语法让我有点懵逼。

本帖已被设为精华帖!
本帖由系统于 4个月前 自动加精
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
Summer
最佳答案

每一个规则,是用 | 符号分开的:

'name' => 'required|between:3,25|regex:/^[A-Za-z0-9-_]+$/|unique:users,name,' . Auth::id()

以上分解下来,是以下规则;

  • required —— 必须输入;
  • between:3,25 —— 字符数在 3 ~ 25 范围内;
  • regex:/^[A-Za-z0-9-_]+$/ —— 正则表达式,过滤只允许字母大小写、数字、横杆和下划线;
  • unique:users,name,' . Auth::id() —— unique 数据库唯一,在 users 数据表里,字段为 name,Auth::id() 指示将此 ID 排除在外。

unique 的完整格式为:

unique:table,column,except,idColumn

完整意思为:

在 table 数据表里检查 column ,除了 idColumn 为 except 的数据。

except 一般在『更新』的表单验证里使用,假设你已经注册了 summer 用户,在更新 summer 用户的表单验证时,你要验证数据库里 summer 用户名是否是唯一的,因为你的数据库里已经有 summer 用户了,所以必须将 summer 用户排除,否则永远是验证不通过。

参考 文档

7个月前
讨论数量: 6
Summer

每一个规则,是用 | 符号分开的:

'name' => 'required|between:3,25|regex:/^[A-Za-z0-9-_]+$/|unique:users,name,' . Auth::id()

以上分解下来,是以下规则;

  • required —— 必须输入;
  • between:3,25 —— 字符数在 3 ~ 25 范围内;
  • regex:/^[A-Za-z0-9-_]+$/ —— 正则表达式,过滤只允许字母大小写、数字、横杆和下划线;
  • unique:users,name,' . Auth::id() —— unique 数据库唯一,在 users 数据表里,字段为 name,Auth::id() 指示将此 ID 排除在外。

unique 的完整格式为:

unique:table,column,except,idColumn

完整意思为:

在 table 数据表里检查 column ,除了 idColumn 为 except 的数据。

except 一般在『更新』的表单验证里使用,假设你已经注册了 summer 用户,在更新 summer 用户的表单验证时,你要验证数据库里 summer 用户名是否是唯一的,因为你的数据库里已经有 summer 用户了,所以必须将 summer 用户排除,否则永远是验证不通过。

参考 文档

7个月前

@shijf 建议你去通读一下 php 文档,太基础了

4个月前

@shijf 如果 Auth::id() 的值为1,name的验证规则为:

'name' => 'required|between:3,25|regex:/^[A-Za-z0-9-_]+$/|unique:users,name,1'

4个月前
shijf

@王成涛 欧克,明白了,我想通了,感谢

4个月前

emmmm,没想到好早以前提的问题这么火,看来我不是一个人。。

4个月前

可以理解为 unique 就是字段值在数据表中是唯一的( 表中不存在的 ), 所以要加个 except 排除掉;

与 注册用户的表单对比, 注册用户时 unique , 不需要用 except

1个月前

  • 请注意单词拼写,以及中英文排版,参考此页
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`, 更多语法请见这里 Markdown 语法
  • 支持表情,使用方法请见 Emoji 自动补全来咯,可用的 Emoji 请见 :metal: :point_right: Emoji 列表 :star: :sparkles:
  • 上传图片, 支持拖拽和剪切板黏贴上传, 格式限制 - jpg, png, gif
  • 发布框支持本地存储功能,会在内容变更时保存,「提交」按钮点击时清空
  请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!