Laravel-Validator自定义验证规则

8 篇文章 0 订阅

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">
			&times;
		</a>
		<ul>
			@foreach ($errors->all() as $error)
			<li>{{ $error }}</li>
			@endforeach
		</ul>
	</div>
@endif

将提示信息显示

效果:

在这里插入图片描述

此文章也将同步至我的个人网站https://www.rfbynet.club,感兴趣的可以查看我的个人网站呀

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值