首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel 5唯一的验证无效

Laravel 5唯一的验证无效
EN

Stack Overflow用户
提问于 2015-05-26 09:12:54
回答 4查看 9.4K关注 0票数 2

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

代码语言:javascript
复制
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');
        }

    }

}

表格还在提交吗?有什么问题吗?似乎验证不起作用?

表格应该会出错,对吗?但它仍然插入数据库

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-05-26 09:14:30

代码语言:javascript
复制
$rules = array(
    'firstname' => 'required|unique:users',
    'surname'   => 'required|unique:users',
);

阅读更多信息:

  • http://laravel.com/docs/5.0/validation#basic-usage
  • http://laravel.com/docs/5.0/validation#rule-unique
票数 5
EN

Stack Overflow用户

发布于 2015-05-27 23:49:11

好像你搞错了

代码语言:javascript
复制
'required:unique'

应该是

代码语言:javascript
复制
'required|unique'
票数 2
EN

Stack Overflow用户

发布于 2017-03-10 08:41:48

解决方案:确保用双qoute写验证,如:“必需”

代码语言:javascript
复制
 $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);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30454318

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档