【问题标题】:Validation form unique Laravel 5.4 doesn't work验证表单独特的 Laravel 5.4 不起作用
【发布时间】:2018-07-26 19:21:43
【问题描述】:

我有这个简单的代码:

$this->validate($request, [
    'email' => 'required|email|unique:subscriptions'
]);

但是我可以继续输入同一封电子邮件,它不会给我发回错误信息,而是继续在数据库中创建行。

但是,如果我将代码更改为 ..

$this->validate($request, [
    'email' => 'required|email|unique:users'
]);

它会正确地向我发送一个错误并显示在我为其设置的 div 中。

我尝试了许多不同的方法来解决这个问题,但我觉得它应该比这更容易。我查看了所有内容,但似乎没有解决这个问题。任何帮助都会很棒。

【问题讨论】:

    标签: php html forms laravel validation


    【解决方案1】:

    您需要指定列名

     $this->validate($request, [
        'email' => 'required|email|unique:subscriptions,email'
       ]);  
    
      $this->validate($request, [
            'email' => 'required|email|unique:users,email'
      ]);
    

    更新时您需要强制使用唯一规则以忽略给定 ID

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

    https://laravel.com/docs/5.2/validation#rule-unique

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-07-12
      • 2014-11-29
      • 2017-06-21
      • 2021-11-28
      • 2019-06-21
      • 2019-01-24
      • 2017-10-08
      相关资源
      最近更新 更多