0

我正在使用 Respect Validation 类,我想验证由 , 或 ; 分隔的电子邮件列表 和空格,如:

mymail1@mydomain.com; mymail2@mydomain.com,mymail3@mydomain.com ;mymail4@mydomain.com;

我无法使用标准 email() 规则,也没有找到任何混合逗号、分号和空格列表的规则。

我试图创建一个自定义规则类,并将其放在我的 App\Validaton\Rules 文件夹中。

namespace App\Validation\Rules;

use Respect\Validation\Rules\AbstractRule;
use Respect\Validation\Rules\Email;

class Emails extends AbstractRule
{
    public function validate($input)
    {
        if (!is_string($input)) {
            return false;
        }

        $inputs=preg_split( "/;|,/", $input);

        $v=new Email();
        foreach($inputs as $input){
            if(!$v->validate($input))
                return false;
        }
        return true;
    }

}

如何使用静态验证器参考来使用我的自定义验证器?

如果我试试这个:

use \Respect\Validation\Validator as V
...
V::length(0,200)->emails()->validate($input);

我有:

“电子邮件”不是有效的规则名称

我在命名空间包含中缺少什么?

4

1 回答 1

0

我已经通过在应用程序引导程序中添加这一行来解决:

\Respect\Validation\Validator::with("\\App\\Validation\\Rules\\");
于 2019-08-15T07:30:34.220 回答