为“Method [validateEach]不存在” Laravel 4.2

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为“Method [validateEach]不存在” Laravel 4.2相关的知识,希望对你有一定的参考价值。

我已经创建自定义的验证:

namespace AppValidators;

class PhoneValidationRule extends IlluminateValidationValidator {

    public function validatePhone($attribute, $value, $parameters)
    {
        return preg_match("/^[+]?[-()sd]{4,17}$/", $value);
    }
}

并将其注册:

class ValidatorServiceProvider extends ServiceProvider {


    public function boot()
    {
        Validator::resolver(function($translator, $data, $rules, $messages)
        {
            return new PhoneValidationRule($translator, $data, $rules, $messages);
        });
    }
...

如果我把它叫做现场正常工作:

        $validator = Validator::make($input, [
            'emails' => 'required|each:email',
            'phone' => 'required|phone',
        ]);

但是当我尝试应用它的数组:

        $validator = Validator::make($input, [
            'emails' => 'required|each:email',
            'phones' => 'required|each:phone',
        ]);

我得到的错误信息:

错误:{类型: “BadMethodCallException”,消息: “方法[validateEach]不存在”,...}的文件: “/home/.../vendor/laravel/framework/src/Illuminate/Validation/Validator.php”行:2564的消息: “方法[validateEach]不存在”。键入: “BadMethodCallException”

我在做什么错?

答案

你的问题是这样的部分:required|each

有作为each验证规则没有这样的事情。看看的文档为可用的验证规则列表:docs

另一答案

验证个人场

$validator = Validator::make($request->all(), [
    'email' => 'required|email',
    'phone' => 'required|phone',
]);

验证阵列

$validator = Validator::make($request->all(), [
    'emails' => 'required|array',
    'emails.*' => 'email',
    'phones' => 'required|array',
    'phones.*' => 'phone',
]);

* Laravel 5.3+

另一答案

each()

这个问题有一部分被用于自定义规则$v->each()直接调用本地方法phone解决:

$validator = Validator::make($input, [
   'phones' => 'required|array',
]);

$validator->each('phones', ['required', 'phone']);

但它可以让你只对值而不是对象的数组迭代验证

以上是关于为“Method [validateEach]不存在” Laravel 4.2的主要内容,如果未能解决你的问题,请参考以下文章

SQL判断字段是不是为空,为NULL

2021-11-26:() 分值为2, (()) 分值为3, ((())) 分值为4, 也就是说,每包裹一层,分数就是里面的分值+1。 ()() 分值为2 * 2, (())() 分值为3 * 2。(

java怎么判断对象为null

码农八荣八耻

pandas把dataframe的数据列转化为索引列实战:单列转化为索引多列转化为复合索引

指定为非空的参数为空:无法更新 Spring Boot jpa 中的单个实体字段。导致指定为非空的参数为空