当前位置: 首页 > 面试题库 >

laravel 4:验证唯一(数据库)多个where子句

燕实
2023-03-14
问题内容

laravel 4文档提到了唯一的字段验证。他们在这里说明了如何在唯一验证中包含where子句。唯一表的单个WHERE子句,例如:

$validator = Validator::make(
    array(
        'name' => 'John Doe'
    ),
    array(
        'name' => 'unique:table,field,NULL,id,field1,value1'
    )
);
  • http://laravel.com/docs/validation#rule-unique

现在,我假设这样做是这样的:

"SELECT id FROM table WHERE field = 'John Doe' AND field1 = value1 LIMIT 1"

然后检查此查询是否返回结果,如果没有通过验证器。

所以我想知道是否有一种方法可以添加更多的where子句?如果是这样怎么办?


问题答案:

我的原始问题的结尾:

我可以将它们叠放吗?如果没有,我该如何写我的确认书?所以我可以只添加“,field2,value2,field3,value3”等。像这样堆叠它们?

回答

是的,我可以像下面那样堆叠它们。因此,如果我想向我的唯一验证器添加多个where子句,我将这样做:

'name' => 'unique:table,field,NULL,id,field1,value1,field2,value2,field3,value3'

例外情况

根据Laravel文档,唯一规则中给出的第三个参数是except参数。

unique:table,column,except,idColumn

我将此参数保留为NULL,因为它与原始问题无关。对于那些想知道此NULL的功能在唯一规则内的用户,让我详细说明一下:

else参数强制唯一规则忽略给定的ID。因此,将其指定为NULL将导致检查每条记录(即忽略任何内容)。

例如:
假设我们希望我们的用户电子邮件是唯一的,但我们的管理员用户可能也具有具有相同电子邮件的普通用户帐户。假设我们的管理员用户是我们创建的第一个用户,其id为1。因此,在创建新用户时我们可以做的是:

'name' => 'unique:users,email,1,id'


 类似资料:
  • 本文向大家介绍yii2 从数据库验证唯一值:唯一验证,包括了yii2 从数据库验证唯一值:唯一验证的使用技巧和注意事项,需要的朋友参考一下 示例 如果输入现有值,某些人会遇到有关无法显示错误消息的问题。例如,我不允许用户使用现有电子邮件进行注册。 视图 控制者 模型            

  • 问题内容: 我在表服务器中有2列。 我有专栏和。 我有验证: 这仅适用于列。但是如何做到这一点并适用于专栏呢? 我想列验证data.ip 和。因为在用户写入ip时,ip和主机名列中可以重复。 问题答案: 您可以用来实现验证规则

  • 主要内容:验证数据库是否具有限制性,配置数据库管理器和数据库,数据库配置参数运行 命令后,可以使用以下命令检查是否已创建数据库: 验证数据库是否具有限制性 通过使用上述命令,只能检查数据库列表。无法确定数据库是限制性的还是非限制性的。 使用以下命令检查数据库是否具有限制性。 语法: 示例: 假设要检查 数据库是否是限制性数据库: 得到类似以下结果: 可以看到它不是限制性的。现在检查是否是限制性数据库: 得到类似以下结果: 可以看到 是限制性数据库。 配置数据库管理器和数据

  • 1、主键约束 主键列上没有任何两行具有相同值(即重复值),不允许空(NULL); 2、唯一性约束 保证一个字段或者一组字段里的数据都与表中其它行的对应数据不同。和主键约束不同,唯一性约束允许为null,但是只能有一行; 3、唯一性索引 不允许具有索引值相同的行,从而禁止重复的索引和键值; 4、三者的区别 约束是用来检查数据的正确性; 索引是用来优化查询的; 创建唯一性约束会创建一个约束和一个唯一性

  • 我搜索了4天关于这个问题,我在ActiveRecord和使用唯一性验证方面遇到了一些问题。我无法在控制台或测试中创建至少包含一个唯一性验证的模型。但是,我可以使用rails服务器(API)创建对象。 这让我发疯了!这是从我把Rails3项目升级到Rails4开始的。 Rails 4.0.15 Ruby 2.2.0 Factory女孩Rails 4.6.0 RSpec 3.4.1 PG 0.18.4

  • 我想用Laravel唯一的验证器来实现SoftDeletes。我已经尝试了很多次,但它产生了这样一个错误。我该怎么办?提前道谢。下面是我的代码示例。