https://blog.csdn.net/zl20117/article/details/53536520
首先,扩展的收个问题是,我的扩展类应该放在哪儿才好呢?
直接在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
。
这里有些同学说,我们怎么没有zh这个文件呢?其实这是laravel的语言包,网上相当的多啦。不过这里为了大家方便,我免费放一个在CSDN上,供大家下载吧
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/113018.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...