Php 与父表一起保存多行
在我的应用程序中,我有一个付款人表,它与模型中的配偶有很多关系。我想能够添加几个配偶到一个客户的情况下,他们有一个以上的配偶,同时保存他们的详细信息。 为此,我创建了一个Livewire组件配偶,代码如下。该代码允许我为付款人的每个配偶添加新的表单组Php 与父表一起保存多行,php,laravel,oop,Php,Laravel,Oop,在我的应用程序中,我有一个付款人表,它与模型中的配偶有很多关系。我想能够添加几个配偶到一个客户的情况下,他们有一个以上的配偶,同时保存他们的详细信息。 为此,我创建了一个Livewire组件配偶,代码如下。该代码允许我为付款人的每个配偶添加新的表单组 <?php namespace App\Http\Livewire; use Livewire\Component; class Spouses extends Component { public $spouses = [];
<?php
namespace App\Http\Livewire;
use Livewire\Component;
class Spouses extends Component
{
public $spouses = [];
public function increments()
{
$this->spouses[] =count($this->spouses)+1;
}
public function remove($index){
unset($this->spouses[$index]);
}
public function render()
{
return view('livewire.spouses');
}
}
注意,我试着移动这条线
$配偶=新配偶();
进入foreach循环,但它给了我一个未定义的变量:partnersesphp脚本中的foreach循环正在
$partnerses
上循环,但是这个变量只包含1个新创建的partnerse
您的代码很难阅读,因为在foreach循环中,您再次使用了$partners
,但含义不同
您的foreach循环应该循环来自表单的配偶,因此它应该循环,例如$request->input('speace\u name')
或其他内容
但这需要数组数据,我认为表单数据没有正确输入,因为在刀片服务器内部创建了一个foreach循环,但创建了多个同名表单元素。您的表单将只使用最后一个值。如果您将输入名称更改为数组值,它应该会起作用,因此将spooce\u name
更改为spooce\u name[]
<div>
<div>
<span wire:click ="increments" class="btn btn-defaults fa fa-plus padding:2 py-1 cursor:pointer text-success"> Click to Add Spouse(s)</span>
</div>
@foreach($spouses as $spouse)
<div class="col-md-10 d-flex">
{!! Form::text('spouse_name', '',array(
'class' => 'form-control col-3',
'id' => 'spouse_name',
'placeholder' => 'Spouse name',
)) !!}
{!! Form::text('spouse_dob', '',array(
'class' => 'form-control col-3',
'id' => 'spouse_dob',
'placeholder' => 'Spouse Age',
)) !!}
{!! Form::text('spouse_emplbiz_add', '',array(
'class' => 'form-control col-3',
'id' => 'spouse_emplbiz_add',
'placeholder' => 'Work Address',
)) !!}
{!! Form::text('spose_income', '',array(
'class' => 'form-control col-3',
'id' => 'spose_income',
'placeholder' => 'Gross Income',
)) !!}
<span class="btn btn-defalt fa fa-times text-danger padding:2"
wire:click="remove({{$loop->index}})"></span>
</div>
@endforeach
</div>
</div>
public function store(CreatePayerRequest $request)
{
$input = $request->all();
$payer = $this->payerRepository->create($input);
{
$spouses = new Spouse();
$input = $request->all();
foreach($spouses as $spouse){
$spouses->user_id = Auth::user()->id;
$spouses->payer_id = 1;
$spouses->spouse_occupation='NA';
$spouses->spouse_name = $input['spouse_name'];
$spouses->spouse_dob = $input['spouse_dob'];
$spouses->spouse_emplbiz_add = $input['spouse_emplbiz_add'];
$spouses->spose_income = $input['spose_income'];
$spouses->save();
}
Flash::error('Taxpayers record not saved');
return redirect(route('payers.index'));