当使用表示多维数组的输入名称时,我在Laravel 4.2中遇到了使用Form facade的问题。除非在Input :: old()中设置了值(因为验证失败等),否则表单将正确加载,显示和发布数据。
这是一个显示问题的简单示例:
routes.php文件:
Route::get('input-test', function() {
return View::make('input_test.index');
});
Route::post('input-test', function() {
return Redirect::back()->withInput(Input::all());
});
input_test / index.blade.php:
<!doctype html>
<html>
<head>
<title>Input Array Test</title>
</head>
<body>
{{ Form::open(array('url' => 'input-test')) }}
{{ Form::label('customer[some_customer_field][]', 'Customer Field:') }} <br>
{{ Form::text('customer[some_customer_field][]', null) }}
{{ Form::submit('Submit') }}
{{ Form::close() }}
</body>
</html>
提交此表单会引发错误:
htmlentities() expects parameter 1 to be string, array given
有没有办法让这些类型的名称输入到回发上?
答案 0 :(得分:0)
这种方式不合适。
以下是
{{ Form::label('customer[0][field_1], 'Customer Field:') }} <br>
{{ Form::text('customer[0][field_2]', null) }}
之后,如果要复制它,则必须使用
{{ Form::label('customer[1][field_1], 'Customer Field:') }} <br>
{{ Form::text('customer[1][field_2]', null) }}
但是如果你想获得一个简单的数组,你必须使用
{{ Form::label('customer[field_1], 'Customer Field:') }} <br>
{{ Form::text('customer[field_2]', null) }}