Laravel验证数组输入

时间:2014-07-29 12:58:27

标签: validation laravel

我正在尝试构建一些看起来像

的自定义网格表单
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

2 个答案:

答案 0 :(得分:0)

我花了很多时间试图弄清楚如何解决这个问题...... Laravel不希望文本输入成为一个数组。所以你要么使用普通的html作为你的数组输入,要么使用custom macros来创建你自己的表单类(我假设你正在使用<activity android:name="Activity" android:showOnLockScreen="true" android:theme="@style/Theme.Dialog" /> )。

答案 1 :(得分:-3)

取消每个输入名称中的[]。 PHP将这些输入解释为数组而不是字符串。

示例:

{{ Form::text('name', null, array('placeholder' => 'Name')) }}