Sub*_*d30 9 php email validation laravel laravel-validation
我已经为laravel中的变量验证了所有的东西但是对于电子邮件我有一个简单的问题.
来自Laravel的文档,
'email' => 'required|email'
Run Code Online (Sandbox Code Playgroud)
我知道这只是一个电子邮件地址但是对于喜欢,
email=abc@xyz.com,xyz@abc.com, def@ghi,com
Run Code Online (Sandbox Code Playgroud)
当我发送电子邮件的数组时,我仍然收到电子邮件不是有效的电子邮件.我做得更像,
'email' => 'required|email|array'
Run Code Online (Sandbox Code Playgroud)
但我仍然有错误.可以任何身体帮助.
谢谢,
Mar*_*ala 18
您需要编写自定义Validator,它将获取阵列并手动验证阵列中的每个电子邮件.在Laravel 5请求你可以做类似的事情
public function __construct() {
Validator::extend("emails", function($attribute, $value, $parameters) {
$rules = [
'email' => 'required|email',
];
foreach ($value as $email) {
$data = [
'email' => $email
];
$validator = Validator::make($data, $rules);
if ($validator->fails()) {
return false;
}
}
return true;
});
}
public function rules() {
return [
'email' => 'required|emails'
];
}
Run Code Online (Sandbox Code Playgroud)
我们可以在没有自定义验证的情况下实现这一点,我们可以覆盖一个方法 prepareForValidation
protected function prepareForValidation()
{
//Here email we are reciving as comma seperated so we make it array
$this->merge(['email' => explode(',', rtrim($this->email, ','))]);
}
Run Code Online (Sandbox Code Playgroud)
然后上面的函数会自动调用并将 email-ids 转换为数组,然后使用数组验证规则
public function rules()
{
return [
'email.*' => 'required|email'
];
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10383 次 |
| 最近记录: |