我创建了一个表单,在“类别”表格中添加了一类产品(例如Sugar Products或Beer),每个用户都有自己的类别名称。
“类别”表格包含id
,category_name
,userId
,created_At
,updated_At
列。
我做了验证,每件事都没问题。但现在我希望每个用户都有一个唯一的category_name。我已经在phpMyAdmin中创建了这个,并在(category_name
和userId
)上创建了一个唯一索引。
所以我的问题是:在填写表格时让我们说你忘了并输入两次类别......这个类别存在于数据库中,并且雄辩地引发了我的错误。我想在验证时,如果有错误将我重定向到我的案例/破折号/仓库,并说你打算两次输入一个类别......请再考虑一下......或者其他什么。我是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);
}
}
}
答案 0 :(得分:1)
你可以制定这样的规则:
$rules = array(
'category_name' => 'unique:categories,category_name'
);