在更新时进行唯一的字段验证

时间:2016-05-31 07:10:10

标签: php laravel laravel-5

我正在尝试验证唯一记录在编辑时,但它始终显示该字段必须是唯一的。基本上我需要忽略那个id的值。 id是主键。

$validator=Validator::make($request->all(),[
'name'=>'required',
'telephone'=>'required|unique:telephone',
'email'=>'unique:telephone',
'altemail'=>'unique:telephone',
'image'=>'image',

]);

if($validator->fails()){
return redirect('/telephone/addview')
    ->withErrors($validator);   
     }

2 个答案:

答案 0 :(得分:1)

unique规则

使用其他参数
$validator=Validator::make($request->all(),[
    'name'=>'required',
    'telephone'=>'required|unique:telephone,telephone,'.$yourMdelInstance->id,
    'email'=>'unique:telephone,email,'.$yourMdelInstance->id,
    'altemail'=>'unique:telephone,altemail,'.$yourMdelInstance->id,
    'image'=>'image',
]);

答案 1 :(得分:0)

您可以在docs中看到,您可以在唯一身份验证中排除值。

示例:

// YourController.php

publiuc function postUpdate(Request $request)
{

    // Get your resource first.
    $model = Model::find($request->input('id'));

    // Check if exists
    if (!$model) \App::abort(404);


    // Validate
    $this->validate($request, [
        '...'
        'telephone' => 'required|unique:yourtablename,telephone,'.$model->telephone,
        '...'
    ]);

}