php - Laravel 5 唯一验证不起作用

标签 php validation laravel

我是 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');
        }

    }

}

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

表单应该会出现一些错误,对吗?但它仍然插入数据库

最佳答案

$rules = array(
    'firstname' => 'required|unique:users',
    'surname'   => 'required|unique:users',
);

了解更多:

关于php - Laravel 5 唯一验证不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30454318/

相关文章:

validation - 全局本地化验证

php - 上传到数据库时尝试获取非对象的属性

php - mysql_fetch_array()/mysql_fetch_assoc()/mysql_fetch_row()/mysql_num_rows 等...期望参数 1 是资源

php - 如何将 MySQL 数据库从 Linux 服务器复制到 Windows 服务器

javascript - 如何回显 Javascript 函数的总和?

javascript - react 冗余 Prop 验证

objective-c - 动态创建的文本字段验证

php - htmlentities() 期望参数 1 为字符串,数组给定

php - 为 Laravel Spatie 备份指定目标目录

php - 我的学说真的很慢。简单查询,一秒出结果