如果值未更改,我想忽略该提示。我现在每次更新表单时都会收到此错误。
这是我对验证的要求。
命名空间App \ Http \ Requests \ Admin;
使用Illuminate \ Foundation \ Http \ FormRequest;
Class ProductInsertFormRequest扩展FormRequest { / ** *确定用户是否有权发出此请求。 * * @返回布尔 * / 公共功能authorize() { 返回true; }
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
'title'=>'required',
'regularPrice'=>'required',
'slug'=>'required|alpha_dash|min:5|max:255|unique:products,slug',
];
}
}
答案 0 :(得分:0)
要在检查唯一性时忽略数据库表中的特定行,您需要将unique()
规则与ignore()
函数一起使用
'slug' => ['required', 'alpha_dash', 'min:5', 'max:255', Rule::unique('products', 'slug')->ignore($this->product->slug)
这将在“产品”表的“子弹”列中检查唯一性,除了具有“此子弹”的特定行之外
答案 1 :(得分:0)
所以我将代码更改为以下内容:
public function rules()
{
$decrypted = Crypt::decrypt($this->id);
//$slug = Product::whereId($decrypted)->pluck('slug')->first();
//return dd($slug);
return [
'title'=>'required',
'regularPrice'=>'required',
'slug' => ['required', 'alpha_dash', 'min:5', 'max:255', Rule::unique('products', 'slug')->ignore($decrypted)]
];
}