当我试图检查名称是否已被使用时,我得到如下错误: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())
答案 0 :(得分:1)
验证器会自动为您处理:
$validate = Validator:make(array(
....
'name' => 'unique:users,name'
));
当列name
上的表users
中已存在name
时,这将产生正确的错误。如果您需要这样做,可以自定义错误消息。