我第一次使用Laravel,正在开发一个可以生成发票的应用程序。每张发票可以有多个职位。这意味着存在一对多的关系。
创建新发票时,有第一个位置的输入,通过ajax可以添加添加更多位置的输入。 我使用数组作为位置并制作随机索引。
<?php $c = rand(); ?>
{!! Form::text('position['.$c.'][title]', null, ['class' => 'form-control']) !!}
{!! Form::textarea('position['.$c.'][description]', null, ['class' => 'form-control']) !!}
到目前为止,这种方法完全正常 现在,在编辑发票时会出现问题。我需要做些什么来使Form-Model Binding工作?
现在我检查一下我有多少个位置,然后用常常输入的位置输入片段并传入数据。
@foreach( $document->positions as $position)
@include('documents._position', [$position])
@endforeach
但值不会出现在输入字段中。我需要做些什么来实现这个目标?
第二件事是我如何同步这些职位?我现在只需在编辑发票并删除新发票后删除现有发票。有更好的方法吗?
答案 0 :(得分:1)
要将数据传递到子视图,您需要以这种格式
进行@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