这里是我自己整理的一些资料,大家不懂的可以相互学习呀。。。

laravel 自定义验证

PHP ZZT 2475次浏览 已收录 0个评论

转载:https://blog.csdn.net/zl20117/article/details/53536520

转载:https://segmentfault.com/a/1190000008920196

转载:https://laravel.com/docs/4.2/validation#custom-validation-rules

首先,扩展的收个问题是,我的扩展类应该放在哪儿才好呢?

直接在app目录下,建立一个目录: app/Extensions ,然后这个目录中专门用来存放你的各类扩展,或者在APP下建立一个common目录下面放置helpers目录下面建立helper.php类

/**
 * 是否为手机号码
 * @param $string
 * @return bool
 */
public static function isMobile($string) {
    return !!preg_match('/^1[3|4|5|7|8]\d{9}$/', $string);
}

或者


<?php namespace App\Extensions; use Illuminate\Validation\Validator; use App\Libary\Util\Validate; /** * * @desc 扩展验证类 * @author helei */ class MyValidator extends Validator { /** * 验证11位手机号码 */ public function validateMobile($attribute, $value) { if (is_null($value)) { return false; } return Validate::isMobile(trim($value));// 这里也可以直接将验证规则写在这里 } }

这段代码表达了这么一个主题:验证输入的手机号码,是不是一个合法的手机号码。有一个需要特别注意的是 [我们自定义的验证方法,必须要以 validate 开头]。

接下来就是要把我们写的验证类,注册到容器中,关于 如何注册自己的服务到容器 请参考这篇之前的文章
这里我还是在啰嗦一下,官方文档中,就给了这么一句:

    接下来,您需要注册您自定义验证器扩展:
/**
 * 验证手机号码
 */
Validator::extend('mobile', function ($attribute, $value, $parameters) {
    return Helper::isMobile($value);
});


class AppServiceProvider extends ServiceProvider { /** * Bootstrap any application services. * * @return void */ public function boot() { /*注册自定义验证类*/ /* Validator::resolver(function($translator, $data, $rules, $messages){ return new SalonValidator($translator, $data, $rules, $messages); }); */ $this->app['validator']->resolver(function ($translator, $data, $rules, $messages){ return new SalonValidator($translator, $data, $rules, $messages); }); }

OK,这里写了之后,请一定记得将该服务提供者写到 app.php 这个配置文件中去哈,如果你不知道怎么写,说明你没有看我说的 这篇文章

到了这儿,还不算完,还有一步,那就官网如果验证错误,都会给出提示信息,这个提示信息,我们在哪里去弄呢?大家可以打开 resources/lang/zh/validation.php 这个文件,我的修改如下图:

这里还有一点要说明哦,如果你要使用 zh 文件下的信息,请一定在 app/config/app.php 中将locale设置为locale=zh 。


乐趣公园 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明laravel 自定义验证
喜欢 (0)

文章评论已关闭!