【问题标题】:Laravel rule validation unique for idLaravel 规则验证唯一的 id
【发布时间】:2018-05-24 20:25:24
【问题描述】:

我有一个位置表,它有一个链接到我的客户表的 client_id 外键。我想添加表单验证,以便在创建新位置时它是唯一的,但仅适用于给定的 client_id。所以客户一不能有两个名为美国的位置,但客户一和二都可以有美国。

你如何使用 laravel 验证规则来做到这一点

【问题讨论】:

  • 你们是什么关系,请描述一下。一个位置有很多客户?还是多对多
  • @HaiderAli 位置属于客户,客户有很多位置
  • 如果从位置到客户端是一对多,那么位置已经是唯一的。那有什么必要让位置独一无二呢?
  • 好的。但是在您的问题中,您说“客户一不能有两个名为美国的位置,但客户一和二都可以拥有美国。”这使它成为多对多的关系。因为到客户有相同的位置。
  • 但是,正如@Mehrdad Dastgir 兄弟在下面指出的那样,您可以通过简单地添加验证规则来验证添加位置的请求

标签: php laravel validation


【解决方案1】:

查看laravel validation 文档。 您可以指定要忽略的表、列和 id。

'email' => 'unique:users,email_address,'.$user->id

您还可以添加额外的 where 子句:

'email' => 'unique:users,email_address,NULL,id,account_id,1'

在上述规则中,只有 account_id 为 1 的行才会包含在唯一检查中。

【讨论】:

    【解决方案2】:

    你可以使用 laravel 内置的唯一验证,

    'client_id' => 'unique:Client table'
    

    并且在编辑时您可以为当前行传递异常,例如

    'client_id' => 'unique:Client table,client_id,'.$id
    

    希望对你有帮助,谢谢...

    【讨论】:

      猜你喜欢
      • 2015-02-27
      • 1970-01-01
      • 2016-04-08
      • 2019-11-15
      • 2016-08-03
      • 2020-09-13
      • 1970-01-01
      • 1970-01-01
      • 2019-09-19
      相关资源
      最近更新 更多