php - “方法 [validateEach] 不存在” Laravel 4.2
问题描述
我创建了自定义验证器:
namespace App\Validators;
class PhoneValidationRule extends \Illuminate\Validation\Validator {
public function validatePhone($attribute, $value, $parameters)
{
return preg_match("/^[\+]?[-()\s\d]{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”
我做错了什么?
解决方案
验证单个字段
$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+
推荐阅读
- ios - 如何在 Avfoundation 中正确更改采样率
- validation - Laravel 5 有时验证规则
- javascript - d3.js 404 json 文件未找到
- numpy - Converting python code with OpenCV to C using Cython(import cv2) [Main idea is to create static lib to be used in C++ program]
- c# - 更改 devexpress layoutcontrolitem 编辑器类型?
- r - R automatically converts dates to string when importing xlsx
- java - java 服务器的全局 TLS 算法策略
- vsto - 检测 Outlook 今日视图何时打开
- html - 使用引导程序可滚动到页面右侧的空白
- android - Android Studio 错误:无法初始化类 com.intellij.psi.jsp.JspElementType