php – 验证Laravel更新中的独特插件5
发布时间:2020-12-14 19:50:18 所属栏目:大数据 来源:网络整理
导读:我目前有一个模型,它有一个文本字段和一个字段. 我验证了我的表单请求类中的slug是唯一的: public function rules(){ return [ 'name' = 'required|min:3','slug' = 'required|alpha_dash|unique:questions' ];} 这在创建时工作正常,并正确地拒绝创建重复的
我目前有一个模型,它有一个文本字段和一个字段.
我验证了我的表单请求类中的slug是唯一的: public function rules() { return [ 'name' => 'required|min:3','slug' => 'required|alpha_dash|unique:questions' ]; } 这在创建时工作正常,并正确地拒绝创建重复的s..但是在我的更新方法中,它不会让我保存一个记录,因为slug已经存在.当然,这个s子确实存在,但它存在于被编辑的记录上,所以我想继续允许它被保存.然而,它不应该被改变为另一个记录的s.. 这是我更新ArticlesController方法的样子: public function update(Article $article,ArticleRequest $request) { $article->update($request->all()); return redirect('articles'); } 有没有办法使这项工作在L5?
在
unique rule中,您可以指定要忽略的ID.
您可以创建2个单独的请求(一个用于创建,一个用于更新),但是您也可以通过这种方式来检查是否设置了(我认为您的更新url看起来像/ questions / 2): public function rules() { $rules = [ 'name' => 'required|min:3','slug' => ['required','alpha_dash'] ]; $rule = 'unique:questions'; $segments = $this->segments(); $id = intval(end($segments)); if ($id != 0) { $rule .= ',slug,' . $id; } $rules['slug'][] = $rule; return $rules; } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |