1.前往app/Providers/AppServiceProvider
如我需要增加QQ邮箱验证功能,返回true或false;
public function boot()
{
Validator::extend('qemail', function($attribute, $value, $parameters) {
return preg_match('/^[1-9][0-9]{4,}@qq.com$/', $value);
});
}
这里qemail就是我自定义规则名称,$value是自动传进去的值
2.前往resources/lang/en/validation.php
<?php
return [
'qemail' => '邮箱必须为QQ邮箱',
?>
增加这个就是在验证有错误的时候的返回值
3.使用
某个控制器
$data = $req->all();
$val = Validator::make($data,[
'email' => 'required|email|qemail',
'pwd' => 'required|max:15|min:4',
'vertical' => 'required|verticaltf'
],[
'email.required' => '邮箱必填',
'email.email' => '不符合规范的邮箱',
'pwd.required' => '密码必须填写',
'pwd.max' => '密码长度需小于15个字符',
'pwd.min' => '密码长度需大于4个字符',
'vertical.required' => '验证码必填'
]);
if($val->fails()){
return back()->withErrors($val)->withInput();
}else{
}
当验证不通过将返回视图back(),并且携带错误提示withErrors($val)到页面中,页面再使用
{{-- 表单内容有误 --}}
@if (count($errors) > 0)
<div class="alert alert-danger">
<a href="#" class="close" data-dismiss="alert">
×
</a>
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
将提示信息显示
效果:
此文章也将同步至我的个人网站https://www.rfbynet.club,感兴趣的可以查看我的个人网站呀
|