【问题标题】:Laravel 5 Unique Validation Not WorkingLaravel 5 唯一验证不起作用
【发布时间】:2015-05-26 09:12:54
【问题描述】:

我是 Laravel 5 的新手,假设我的数据库中有名字和姓氏字段。我有这个验证吗?

public function create()
{

    $rules = array(
        'firstname'         => 'required:unique',
        'surname'           => 'required:unique',
        'phoneno'           => 'required',
        'mcmillan'          => 'required',
        'hri'               => 'required',
        'diabetes'          => 'required',
        'breastcancer'      => 'required',
        'gpt'               => 'required',
    );

    $validator = Validator::make(Input::all(), $rules);

    // Check if all fields is filled
    if ($validator->fails()) 
    {
        return Redirect::to('brk')->withErrors($validator);
    }
    else
    {
        $flag = Input::get('flag');

        /* If version 2 (Opt In) */
        if($flag == "1")
        {
            if(Input::get('opt') != "")
            {
                $optMethod = Input::get('opt');
            }
            else
            {
                $optMethod = 'OptOut';
            }
        }
        else if($flag == "0") /* If version 1 (Opt Out) */
        {
            if(Input::get('opt') != "")
            {
                $optMethod = Input::get('opt');
            }
            else
            {
                $optMethod = 'OptIn';
            }
        }

        $firstname      = Input::get('firstname');
        $surname        = Input::get('surname');
        $phoneno        = Input::get('phoneno');
        $mcmillan       = Input::get('mcmillan');
        $hri            = Input::get('hri');
        $diabetes       = Input::get('diabetes');
        $breastcancer   = Input::get('breastcancer');
        $gpt            = Input::get('gpt');

        $brk = new \App\Http\Models\BrkDailyMail;
        $brk->firstname            = $firstname;
        $brk->surname              = $surname;
        $brk->phoneno              = $phoneno;
        $brk->mcmillan             = $mcmillan;
        $brk->hri                  = $hri;
        $brk->diabetes             = $diabetes;
        $brk->breastcancer         = $breastcancer;
        $brk->gpt                  = $gpt;
        $brk->OptMethod             = $optMethod;
        $brk->hostname             = Request::root().'/brk';
        $brk->save();
        Session::flash('alert-success', 'Form Submitted Successfully.');
        /* If version 2 (Opt In) */
        if($flag == "1")
        {
            return Redirect::to('brk2');
        }
        else if($flag == "0") /* If version 1 (Opt Out) */
        {
            return Redirect::to('brk');
        }

    }

}

并且表单仍在提交?可能是什么问题呢?好像验证不起作用?

表格应该有一些错误吧?但它仍然插入数据库中

【问题讨论】:

标签: php validation laravel


【解决方案1】:
$rules = array(
    'firstname' => 'required|unique:users',
    'surname'   => 'required|unique:users',
);

阅读更多:

【讨论】:

  • 对我不起作用,先生,我的模型是 BRKDailyMails 我已经将用户更改为 BRKDailyMails
  • 这里需要的是表名,而不是模型名。
  • 是的,那是我的型号名称。但是我改变了我的问题,似乎我的验证器不起作用
【解决方案2】:

你好像搞错了

'required:unique'

应该是

'required|unique'

【讨论】:

    【解决方案3】:

    解决方案:确保在双引号中编写验证,例如:“必需”

     $validator = Validator::make($request->all(), [
                        'client_id'     =>  "required",
                        'chapter_name'   =>  "required|unique:chapters",
                        ]
                    );
                   /** Return Error Message **/
            if ($validator->fails()) {
                        $error_msg  =   [];
                                    foreach ( $validator->messages()->messages() as $key => $value) {
                          $error_msg[$key] =   $value[0];
                        } 
            }  print_r($error_msg);
    

    【讨论】:

      【解决方案4】:

      我在使用 Laravel 5.8 时遇到了这个问题。我是这样解决的。

      $validator = Validator::make($request->all(), [
                          'username'     =>  "required|unique:users,username",
                          'password'   =>  "required",
                          ]
                      );
      

      在此之前,我在 Laravel 的验证中遇到了错误。当我进行验证时,我使用了 unique:users 。这样 Laravel 就不确定表用户中的哪一列应该是唯一的。我应该补充 unique:users,username 在用户表中指定唯一的列用户名。

      This article 帮助了我。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-05-31
        • 2016-01-19
        • 2015-08-30
        • 1970-01-01
        • 2021-08-07
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多