为“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的主要内容,如果未能解决你的问题,请参考以下文章
2021-11-26:() 分值为2, (()) 分值为3, ((())) 分值为4, 也就是说,每包裹一层,分数就是里面的分值+1。 ()() 分值为2 * 2, (())() 分值为3 * 2。(