laravel 5.4 自定义表单验证

1:背景

2:用法

Laravel 提供了许多有用的验证规则。但你可能想自定义一些规则。注册自定义验证规则的方法之一,就是使用 Validator Facade 中的 extend 方法,让我们在 服务提供者 中使用这个方法来注册自定义的验证规则:

<?php

namespace App\Providers;

use Illuminate\Support\ServiceProvider;
use Illuminate\Support\Facades\Validator;

class AppServiceProvider extends ServiceProvider
{
    /**
     * 启动任意应用程序服务。
     *
     * @return void
     */
    public function boot()
    {
        Validator::extend('foo', function ($attribute, $value, $parameters, $validator) {
            return $value == 'foo';
        });
    }

    /**
     * 注册服务容器。
     *
     * @return void
     */
    public function register()
    {
        //
    }
}

自定义的验证闭包接收四个参数:要被验证的属性名称 attribute,属性的值value,传入验证规则的参数数组 $parameters,及 Validator 实例。

3:说明:上面只是说了有这个东西,具体怎么使用,还是没有明说。下面给出例子

4:例:

①新建控制器(控制器中的规则和,boot中的‘foo’一样)
②在 App\Providers\AppServiceProvider 的boot方法中加上那一段话(实际上可以添加任意逻辑)
③在resources\lang\zh-CN\validation.php 文件的 return数组中,按照其格式,添加任意提示信息(注意,键名和boot方法中
Validator::extend('foo', function ($attribute, $value, $parameters, $validator) { 
return $value == 'foo'; 
}); 
‘foo’位置的字段一样)

5:示例

新建控制器方法
public function dd(Request $request)
    {

        $inputs = $request->all();
        $rule = array(
             'title' => 'required|foo',
        );

        $validate = Validator::make($inputs, $rule);
        if ($validate->fails())
        {
            $errors = $validate->errors()->all();
            return $this->genResponse(0, $errors);
        }

    }
在resources\lang\zh-CN\validation.php
'foo' => "这是自定义规则",
在App\Providers\AppServiceProvider创建boot方法
 public function boot()
    {
        Validator::extend('foo', function ($attribute, $value, $parameters, $validator) {
            return $value == 'foo';
        });

    }
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值