如何在 Laravel 5.1 中验证数组值?应该验证数组的每个值。数组值的数量可能会增加或减少。但名字会是一样的。我的示例输入如下:
emails[] = '<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="a2cfc3cbce92e2c7dac3cfd2cec78cc1cdcf" rel="noreferrer noopener nofollow">[email protected]</a>',
emails[] = '<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="ee838f8782dfae8b968f839e828bc08d8183" rel="noreferrer noopener nofollow">[email protected]</a>',
我给出的验证规则如下:
'emails' => 'required|email'
但是当我给出多个值时,它会返回电子邮件无效错误,因为电子邮件输入是数组。我如何验证这一点?我应该编写自定义规则吗?
基于this answer我尝试过类似的事情,
$validator->each('emails', 'required|email')
但不工作。
最佳答案
如果您尝试验证数组值。
您可以在验证地方使用,如下所示,
'email.*' => 'required|email'
如果它是一个像这样的对象,
{
'email' : [
{
'email' : '<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="d8a098bfb7b7bfb4bdf6bbb7b5" rel="noreferrer noopener nofollow">[email protected]</a>'
},
{
'email' : '<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="bac3faddd5d5ddd6df94d9d5d7" rel="noreferrer noopener nofollow">[email protected]</a>'
}
]
}
然后你需要像下面这样使用,
'email.*.email' => 'required|email'
这是验证数组元素的最佳方法。
关于arrays - Laravel 数组字段验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34719125/