laravel中的自定义验证规则

版权声明:本文为本小白原创文章,(转载请说明出处,标明链接) 文中若有错误,敬请指正! https://blog.csdn.net/qq_32737755/article/details/81029257

Laravel内置的验证规则不够用?咋办?
我们自己来定义!

首先在 app\Providers\AppServiceProvider.php 文件中添加我们自定义的规则:

在boot方法中添加:

<?php

namespace App\Providers;


use Illuminate\Support\ServiceProvider;

class AppServiceProvider extends ServiceProvider
{
    /**
     * Bootstrap any application services.
     *
     * @return void
     */
    public function boot()
    {   //密码格式验证 密码必须由字母和数字组成
        \Illuminate\Support\Facades\Validator::extend('zzregex', function($attribute, $value, $parameters) {
            return preg_match('/([0-9]+[a-zA-Z]+|[a-zA-Z]+[0-9]+)[0-9a-zA-Z]*/', $value);
        });
        //手机号格式验证
        \Illuminate\Support\Facades\Validator::extend('telphone', function($attribute, $value, $parameters) {
            return preg_match('/^1[34578][0-9]{9}$/', $value);
        });
    }

当然 上面代码中\Illuminate\Support\Facades\Validator 可以换成Validator 然后在头部use Illuminate\Support\Facades\Validator ; 就行了

自定义验证错误信息,找到resources\lang\validation.php文件
在return中添加

<?php

return [

    'zzregex'             => '密码必须包含字母和数字',
    'telphone'           => 'T手机号格式不正确',
]

这样就可以在用我们自定义的规则了。

自定义验证错误信息也可以在使用的时候添加到message数组中,如下:

public function register(){
        $input=Input::all();
        //获取用户输入的账号和密码
        $rules=[
            'code'=>'required',
            'mobile'=>'required|telphone',
            'password'=>'required|between:6,16|zzregex'
        ];
        $message=[
            'code.required'=>'验证码不能为空',
            'mobile.required'=>'手机号不能为空',
            'mobile.telphone'=>'请输入正确的手机号',
            'password.between'=>'密码必须在6-16位之间',
            'password.zzregex'=>'密码必须由字母和数字组成',
            'password.required'=>'密码不能为空'
        ];
        $validator=Validator::make($input,$rules,$message);
        if(!$validator->passes()){
            $validatorErrs = $validator->errors()->all();
            $errMessages=['errcode'=>1, 'msg'=>$validatorErrs];
            return  response()->json($errMessages);
        }

猜你喜欢

转载自blog.csdn.net/qq_32737755/article/details/81029257