Laravel使用字段名称数组填充字段

时间:2015-01-09 16:30:56

标签: php forms laravel laravel-4

在我的laravel形式中,我有一些字段有这样的名字:

  

名称= “MyField的[0]”

我正在使用form :: model binging以填充表单的字段以进行编辑,这对于具有普通名称的所有字段都是完美的。

但由于某种原因,正在填充名称为数组的字段。我提供的数据应该作为一个数组填充字段,所以结构是相同的,例如。

array myfields = (
    '0' => 'hello',
    '1' => 'world,
    '2' => '!'
)
  

表单字段名称

     

名称= “myfields [0]”

     

名称= “myfields [1]”

     

名称= “myfields [2]”

在这个例子中,我希望数组键与数据填充相匹配。

它没有,所以你们对我如何得到这个有任何想法吗?

干杯

2 个答案:

答案 0 :(得分:0)

我遇到了同样的问题,我也找不到办法,我最终做的是:

我得到了一系列值,然后我只是在视图中做了一个foreach

@foreach ($array as $element)
   {{ Form::text('myfields[]', $element[]) }}
@endforeach

我知道这不是正确的解决方案或正确的解决方案,但这解决了我的问题,我希望对你也有帮助。

答案 1 :(得分:0)

Laravel 5在这里。我发现了4& 4之间的差异。 5在特定领域是次要的。我希望这很有用

我的数组格式是$ object [x] [attribute],$ object [x] [otherattribute]

我发现这个问题对于包含数组和动态数据的编辑表单非常重要。

    public function edit($object)
    {
       $object=  $object->toArray();
       return view('editView', compact( 'object'));
    }

发送对象的路线

Route::bind('object', function($value, $route) {
   $thing = App\Object::where('variable','=',$value)->get();
   return $thing;  
});

注意,我可以将它作为数组而不是控制器传递。但是直到我完全测试它的行为(好到目前为止!),我希望能够用棍子戳它。

我如何打开表单

   {!! Form::model(['object'=>$object], ['method' => 'PATCH', 'route' => ['thing.update,$owner->id], 'class'=>'form-horizontal']) !!}

示例文字输入:

{!! Form::text('object['.$idx.'][attribute]',null,array('class'=>'cloned_input form-control input-sm')) !!}

请注意,我能够将输入值保持为null,因此它遵循

的顺序
  1. 会话数据
  2. 模型
  3. 至少我相信它会!到目前为止,我的动态表单仍然在每个CRUD操作的一个模板上工作。