Php 如何为唯一字段编写Laravel验证
我似乎找不到关于如何在Laravel中验证唯一字段的详尽指南。请详细说明以下验证规则与错误或冗余规则之间的区别 一, 二, 三, 四,Php 如何为唯一字段编写Laravel验证,php,validation,laravel,laravel-4,Php,Validation,Laravel,Laravel 4,我似乎找不到关于如何在Laravel中验证唯一字段的详尽指南。请详细说明以下验证规则与错误或冗余规则之间的区别 一, 二, 三, 四, 第一种方法是查看用户表以确保电子邮件是唯一的。因为您没有提供列作为第二个参数,所以它将假定列名与键相同,在本例中为email 第二个是简单地声明应该为email列检查哪个列。在这种情况下,它不是必需的,因为电子邮件列是Laravel已经假定的email。如果数据库中的电子邮件列的名称类似于user\u email,那么您必须将user\u email传递给验证程
第一种方法是查看用户表以确保电子邮件是唯一的。因为您没有提供列作为第二个参数,所以它将假定列名与键相同,在本例中为
email
第二个是简单地声明应该为email列检查哪个列。在这种情况下,它不是必需的,因为电子邮件列是Laravel已经假定的email
。如果数据库中的电子邮件列的名称类似于user\u email
,那么您必须将user\u email
传递给验证程序,以便它知道要检查哪个列的电子邮件地址
第三,你应该通过电子邮件传递用户的id。这将告诉Laravel电子邮件应该是唯一的,除非该电子邮件恰好为该id设置。这对于编辑表单很有用。如果您正在编辑拥有电子邮件test@test.com
如果您试图保存它,则使用唯一的验证器将不允许保存该表单,因为它已经看到了test@test.com
在表中(您正试图编辑的表)。因此,通过这种方式,您可以传入该用户的id,验证也将通过
第四,您只需声明主id列的名称。大多数情况下,这不是必需的,因为Laravel只假设主键列称为id。如果出于某种原因,用户表上的主键是
user\u id
,然后您将传入user\u id
,这样它就知道要在哪个列上匹配id。第一个就是查看users表以确保电子邮件是唯一的。因为您没有提供列作为第二个参数,所以它将假定列名与键相同,在本例中为email
第二个是简单地声明应该为email列检查哪个列。在这种情况下,它不是必需的,因为电子邮件列是Laravel已经假定的email
。如果数据库中的电子邮件列的名称类似于user\u email
,那么您必须将user\u email
传递给验证程序,以便它知道要检查哪个列的电子邮件地址
第三,你应该通过电子邮件传递用户的id。这将告诉Laravel电子邮件应该是唯一的,除非该电子邮件恰好为该id设置。这对于编辑表单很有用。如果您正在编辑拥有电子邮件test@test.com
如果您试图保存它,则使用唯一的验证器将不允许保存该表单,因为它已经看到了test@test.com
在表中(您正试图编辑的表)。因此,通过这种方式,您可以传入该用户的id,验证也将通过
第四,您只需声明主id列的名称。大多数情况下,这不是必需的,因为Laravel只假设主键列称为id。如果出于某种原因,用户表上的主键是
user\u id
,然后您将传入user\u id
,这样它就知道要在哪个列上匹配id。第一个就是查看users表以确保电子邮件是唯一的。因为您没有提供列作为第二个参数,所以它将假定列名与键相同,在本例中为email
第二个是简单地声明应该为email列检查哪个列。在这种情况下,它不是必需的,因为电子邮件列是Laravel已经假定的email
。如果数据库中的电子邮件列的名称类似于user\u email
,那么您必须将user\u email
传递给验证程序,以便它知道要检查哪个列的电子邮件地址
第三,你应该通过电子邮件传递用户的id。这将告诉Laravel电子邮件应该是唯一的,除非该电子邮件恰好为该id设置。这对于编辑表单很有用。如果您正在编辑拥有电子邮件test@test.com
如果您试图保存它,则使用唯一的验证器将不允许保存该表单,因为它已经看到了test@test.com
在表中(您正试图编辑的表)。因此,通过这种方式,您可以传入该用户的id,验证也将通过
第四,您只需声明主id列的名称。大多数情况下,这不是必需的,因为Laravel只假设主键列称为id。如果出于某种原因,用户表上的主键是
user\u id
,然后您将传入user\u id
,这样它就知道要在哪个列上匹配id。第一个就是查看users表以确保电子邮件是唯一的。因为您没有提供列作为第二个参数,所以它将假定列名与键相同,在本例中为email
第二个是简单地声明应该为email列检查哪个列。在这种情况下,它不是必需的,因为电子邮件列是Laravel已经假定的email
。如果数据库中的电子邮件列的名称类似于user\u email
,那么您必须将user\u email
传递给验证程序,以便它知道要检查哪个列的电子邮件地址
第三,你应该通过电子邮件传递用户的id。这将告诉Laravel电子邮件应该是唯一的,除非该电子邮件恰好为该id设置。这对于编辑表单很有用。如果您正在编辑拥有电子邮件test@test.com
如果您试图保存它,那么使用唯一的验证器将不会成功
$rules = ['email' => 'email|unique:users']
$rules = ['email' => 'email|unique:users,email']
$rules = ['email' => "email|unique:users,email,{$user->email}"]
$rules = ['email' => "email|unique:users,email,{$user->email},email"]