laravel一个字段多个验证规则的时候通过一个规则即可通过验证要怎么写?
给我你的怀抱
给我你的怀抱 2017-05-16 16:48:29
0
2
663

laravel一个字段多个验证规则的时候通过一个规则即可通过验证要怎么写?

'alipay'=>array('sometimes','required','email','regex:/^1(3[0-9]|4[57]|5[0-35-9]|7[0135678]|8[0-9])d{8}$/'),

比如这个验证规则
只要邮箱账号和手机账号任意一个只要通过了就可以验证通过

给我你的怀抱
给我你的怀抱

全部回复(2)
大家讲道理

这个之前我也遇到过这种需求,确实没有在文档中找到原生的支持方案,最后是这样做的,可以参考一下

$rule = preg_match('/^\d+$/', $request->input($this->loginUsername())) ? 'tel' : 'email';
$this->validate($request, [
    $this->loginUsername() => "required|{$rule}",
    'password'             => 'required',
]);
刘奇

自定义验证规则

//AppServiceProvider
class AppServiceProvider extends ServiceProvider
{
    public function boot()
    {
        Validator::extend('alipay', function($attribute, $value, $parameters, $validator) {
            return preg_match('/^1(3[0-9]|4[57]|5[0-35-9]|7[0135678]|8[0-9])\d{8}$/',$value) || filter_var(FILTER_VALIDATE_EMAIL,$value);
        });
    }

    public function register()
    {
    }
}

// Controller 使用
'alipay' => ['required','alipay']
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!