Laravel检查名称是否已被使用会引发错误

时间:2016-02-05 20:51:02

标签: php laravel

当我试图检查名称是否已被使用时,我得到如下错误:SQLSTATE [23000]:完整性约束违规:1062重复条目' feknaz'关键字'名称'

嗯,它说它是重复的。但是如何让它看起来像laravel中的其他错误?如何显示它"此名称已被采用"。我不知道如何为这个领域做到这一点。这是我的代码:

RegistersUsers.php:

if ($validator->fails())
{
     if (User::where('name', '=', Input::get('name'))->count() > 0) {
       return redirect('registruotis')->withErrors(['msg', 'The Message']);
    }       
    return redirect('registruotis')->withErrors($validator);
}

Register.blade.php:

@if (count($errors))
<div id="error-box" class="alert alert-danger center-block" style="width: 350px">
    <ul>
        @foreach($errors->all() as $error)
            <li>{{ $error }}</li>
        @endforeach
    </ul>
    </div>
@endif

我解决了这个问题

我只需要这样说:

 if (User::where('name', '=', Input::get('name'))->count() > 0) {
   return redirect('registruotis')->withErrors(['msg', 'The Message']);

之前if ($validator->fails())

1 个答案:

答案 0 :(得分:1)

验证器会自动为您处理:

$validate = Validator:make(array(
    ....
    'name' => 'unique:users,name'
));

当列name上的表users中已存在name时,这将产生正确的错误。如果您需要这样做,可以自定义错误消息。