【发布时间】:2014-09-20 20:38:23
【问题描述】:
我正在尝试构建一些看起来像的自定义网格表单
form.blade.php
<table>
<tr>
<td>
{{ Form::text('name[]', null, array('placeholder' => 'name') }}
</td>
</tr>
<tr>
<td>
{{ Form::text('aerobic[]', null, array('placeholder' => 'aerobic') }}
</td>
</tr>
<tr>
<td>
{{ Form::text('core_test[]', null, array('placeholder' => 'core test') }}
</td>
</tr>
</table>
Validation rules
$validator = Validator::make(Input::all(), array(
'name[]' => 'required|alpha',
'aerobic[]' => 'required|alpha',
'core_test[]' => 'required|alpha'
));
我如何验证输入或有什么其他好的方法来构建它?
提交表单时出现以下错误
htmlentities() expects parameter 1 to be string, array given
(View: /Applications/XAMPP/xamppfiles/htdocs/hp/v1.1/app/views
/files/templates/apa/form.blade.php)
我也试过了
$validator = Validator::make(Input::all(), array(
'name' => 'required|alpha',
'aerobic' => 'required|alpha',
'core_test' => 'required|alpha'
));
我从 alpha 验证规则中得到了这个错误
preg_match() expects parameter 2 to be string, array given
【问题讨论】:
-
is_array($yourvariable) 不够吗?
-
@astro 我会在哪里使用 is_array 在代码的哪一部分
-
你应该使用后一个版本的规则
name,而不是name[]。然后您可以使用内置规则array确保传递的值是一个数组。不幸的是,没有用于验证该数组项的内置方法,因此您需要一个自定义规则。 -
对不起,我没有在输入名称中看到 []。据我所知,laravel 的验证无法处理数组中的值。您可以尝试使用自定义验证规则来遍历数组并验证 laravel.com/docs/validation#custom-validation-rules 循环中的 preg_match 就可以了
标签: validation laravel