arrays - Laravel 数组字段验证

标签 arrays validation laravel-5.1

如何在 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/

相关文章:

javascript - 在javascript中设置对象数组的顺序

angular - 为什么 setValidators() 在下一次更改时开始使用新的验证器,而不是立即

css - 只有 ascii 字符对 CSS 样式名称有效

php - 脚本 php artisan clear-compiled 处理返回错误的 pre-update-cmd 事件

javascript - 从两个数组的内容创建对象

c - 循环的执行速度随变量位置而变化

java - 在不创建新副本的情况下获取数组的一部分

vba - 有 protected 工作表时如何保持宏运行?

php - 如何使用 Laravel 为每个模型实例注册默认观察者

laravel-5.1 - Laravel 5.1 : Class 'Doctrine\DBAL\Driver\PDOSqlite\Driver' not found