Laravel 5 一对多关系表模型绑定

Laravel 5 One To Many Relation Form Model Binding

我是第一次使用 Laravel,我正在开发一个可以生成发票的应用程序。每张发票可以有多个位置。这意味着存在一对多关系。

创建新发票时,有第一个职位的输入,并且可以通过 ajax 添加更多职位的输入。 我使用一个数组作为位置并制作一个随机索引。

<?php $c = rand(); ?>

{!! Form::text('position['.$c.'][title]', null, ['class' => 'form-control']) !!}
{!! Form::textarea('position['.$c.'][description]', null, ['class' => 'form-control']) !!}

目前为止一切正常。
现在,当涉及到编辑发票时,问题就出现了。我需要做什么才能使表单模型绑定正常工作?

现在我检查我有多少个职位,并使用经常输入的职位输入加载代码段并传入数据。

@foreach( $document->positions as $position)
    @include('documents._position', [$position])
@endforeach

但是这些值没有出现在输入字段中。我需要做什么才能让它正常工作?

第二件事是如何同步位置?我现在只是在编辑发票后删除现有的并制作新的。有更好的方法吗?

要将数据传递给子视图,您需要以这种格式进行

@include('view.name', ['some' => 'data'])

或者你的代码看起来是正确的

@foreach( $document->positions as $position)
    @include('documents._position', ['position' => $position])
@endforeach

因此,您可以在子视图

中使用$position
{!! Form::text("position[$position->id][title]", $position->title, ['class' => 'form-control']) !!}
{!! Form::textarea("position[$position->id][description]", $position->description, ['class' => 'form-control']) !!}

来源:http://laravel.com/docs/5.0/templates#other-blade-control-structures