如何在 laravel 中验证多行表单
Posted
技术标签:
【中文标题】如何在 laravel 中验证多行表单【英文标题】:How to validate multi-row forms in laravel 【发布时间】:2012-11-20 19:20:01 【问题描述】:是否可以在 laravel 中验证多行表单。我想验证一个如下所示的表单:
<input name="address[]" class="addr"/>
<input name="address[]" class="addr"/>
这两种方法我都试过了,但似乎都不起作用:
$rule = array('address[]' => 'required'); //still returning error even if all required fields are filled up
$rule = array('address' => 'required'); //nothing happens
对于第一个我确保没有隐藏地址字段:
$('.addr').length
返回的长度等于我填写的地址字段个数
【问题讨论】:
有没有可能你几分钟前已经在 Laravel 论坛上问过这个问题了?有一点耐心:) @Franz 我也坚持这一点。如果我使用类似 和 会发生什么 @Murat:我认为那不是有效的 html。 @Franz 哦,我的错。 这是我使用的那个。对不起 嗯,我认为它会自动创建递增索引。试试看。为了安全起见,只需将[0]
用于 id 和 name。
【参考方案1】:
是的,使用以下任何一种:
$rule = array('address' => 'array');
$rule = array('address' => 'countmin:0');
【讨论】:
谢谢,但这似乎不起作用,两者都没有效果,就像规则甚至不存在一样 你使用的是哪个 Laravel 版本? 我认为它是第 3 版,或者 laravel.com/download 上提供的任何版本 如果你使用 git,你应该将 laravel 作为子模块克隆到你的项目中,并从 path.php 指向 laravel 系统文件夹。因此,您不会在每次更新 laravel 时都替换文件【参考方案2】:我刚刚扩展了验证器类并创建了一个简单的规则来检查数组中是否有空值:
public function validate_arrayfull($attribute, $value, $parameters)
$is_full = (in_array('', $value)) ? false : true;
return $is_full;
并且在 Validation.php 中有一条默认错误消息:
"arrayfull" => "The :attribute contains empty values"
用法:
$rule = array('address' => 'arrayfull');
【讨论】:
以上是关于如何在 laravel 中验证多行表单的主要内容,如果未能解决你的问题,请参考以下文章
在 Laravel 5 中使用表单请求验证时如何添加自定义验证规则
如何在 laravel 表单验证错误消息中给出自定义字段名称