【问题标题】:How to validate a field to be unique for some rows using Laravel?如何使用 Laravel 验证某些行的字段是否唯一?
【发布时间】:2013-08-05 15:36:44
【问题描述】:

我正在尝试验证具有以下结构的模型:

+------------+
| User       |
+------------+
| id         |
| username   |
| company_id |
+------------+

用户可以属于公司的位置。目前我正在使用以下规则验证用户名在用户表中是唯一的:

'username' => ["unique:users"]

编辑当前用户时,我想忽略当前行,我这样做是:

'username' => ["unique:users,username,10"]

而且它有效。

现在我想验证用户名在公司内是唯一的

如何验证某个字段在某些行中是唯一的(其中 company_id = some-id)?

【问题讨论】:

    标签: laravel laravel-4


    【解决方案1】:

    虽然 Laravel 文档中没有记录,但可以通过添加额外的参数来完成,该参数将被翻译到 where 子句。

    以下将满足您的要求:

    'username' => ["unique:users,username,10,id,company_id,31"]
    

    会被翻译成如下的SQL语句:

    select 
      count(*) 
    from 
      users 
    where username   =  ?
      and id         <> 10
      and company_id =  31
    

    【讨论】:

      猜你喜欢
      • 2019-03-24
      • 2019-07-06
      • 2023-04-09
      • 2015-08-28
      • 2015-05-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-30
      相关资源
      最近更新 更多