Laravel Eloquent验证插入异常?

时间:2015-07-25 17:57:57

标签: php mysql validation laravel eloquent

我创建了一个表单,在“类别”表格中添加了一类产品(例如Sugar Products或Beer),每个用户都有自己的类别名称。

“类别”表格包含idcategory_nameuserIdcreated_Atupdated_At列。

我做了验证,每件事都没问题。但现在我希望每个用户都有一个唯一的category_name。我已经在phpMyAdmin中创建了这个,并在(category_nameuserId)上创建了一个唯一索引。

所以我的问题是:在填写表格时让我们说你忘了并输入两次类别......这个类别存在于数据库中,并且雄辩地引发了我的错误。我想在验证时,如果有错误将我重定向到我的案例/破折号/仓库,并说你打算两次输入一个类别......请再考虑一下......或者其他什么。我是laravel和php的新手,对不起我的语言但对我来说很重要,知道为什么会发生这种情况以及我如何解决这个问题。看看我的控制器,如果你需要更多东西,我会把它给你。

class ErpController extends Controller{
public function __construct()
{
    $this->middleware('auth');
}

public function index()
{
    return view('pages.erp.dash');
}

public function getWarehouse()
{
    $welcome = Auth::user()->fName . ' ' . Auth::user()->lName;
    $groups = Group::where('userId',Auth::user()->id)->get();
    return view('pages.erp.warehouse', compact('welcome','groups'));


}

public function postWarehouse(Request $request)
{
    $input = \Input::all();
    $rules = array(
        'masterCategory' => 'required|min:3|max:80'
    );
    $v = \Validator::make($input, $rules);
    if ($v->passes()) {
        $group = new Group;
        $group->group = $input['masterCategory'];
        $group->userId = Auth::user()->id;
        $group->save();
        return redirect('dash/warehouse');
    } else {
        return redirect('dash/warehouse')->withInput()->withErrors($v);
    }

}
}

1 个答案:

答案 0 :(得分:1)

你可以制定这样的规则:

$rules = array(
    'category_name' => 'unique:categories,category_name'
);