在m应用程序,我有一个表单的数据意味着插入数据到两个表:付款人和配偶和付款人有许多配偶。 在我的PayerController中
public function store(CreatePayerRequest $request)
{
$input = $request->all();
$payer = $this->payerRepository->create($input);
{
而且我有
dd($request->all())
并得到以下结果,显示数组从输入表单成功传递。
array:34 [▼
"_token" => "LDdsaesoaRlKmM0URHVxQqyiJHdrPhLz3lmYQs6V"
"added_on" => "2020-06-28 11:07:39"
"user_id" => array:2 [▼
0 => "Auth::user()->id"
1 => "Auth::user()->id"
]
"ass_code" => "508063"
"title" => "Mr"
"surname" => "PLC"
"firstname" => "ZENITH"
"othernames" => "A,"
"dob" => "2020-06-28 12:08:59"
"address" => "43"
"street" => "Old School"
"town" => "Umuguma"
"lga" => "Okigwe"
"state" => "Imo"
"nationality" => "Nigerian"
"occupation" => "Civil Servant"
"vocation" => "Employment"
"phone" => "8035514494"
"email" => "ugo@yahoo.com"
"income_status" => "Yes"
"allowance_status" => "No"
"acc_status" => "1"
"assess_status" => "0"
"approve_status" => "0"
"payment_status" => "0"
"authorize_status" => "0"
"marital_stat" => "Married"
"spouse_name" => array:2 [▼
0 => "Tony"
1 => "Nkechi"
]
"spouse_dob" => array:2 [▶]
"spouse_emplbiz_add" => array:2 [▼
0 => "nA"
1 => "nA"
]
"spose_income" => array:2 [▼
0 => "50000"
1 => "50000"
]
"child_status" => "Yes"
"vehicle_status" => "Yes"
"assets_status" => "Nigeria"
]
我的问题是,当我发送带有配偶数组的表单时,它会给我错误:
ErrorException数组到字符串的转换
我试过各种代码
代码1
$payer->spouses()->create();
代码2
$spouses = Spouse::find($payer->id);
foreach($request->spouses as $spouse){
$payer->spouses()->create([
'user_id' => Auth::user()->id,
'spouse_occupation'=>NA,
'spouse_name'=>$spouse_name,
'spouse_dob'=>$spouse_dob,
'spouse_emplbiz_add'=>$spouse_emplbiz_add]);
代码3:
$spouses = new Spouse();
$spouses->user_id = Auth::user()->id;
$spouses->payer_id = $payer->id;
$spouses->spouse_occupation='NA';
$spouses->spouse_name = $request->input('spouse_name');
$spouses->spouse_dob = $request->input('spouse_dob');
$spouses->spouse_emplbiz_add = $request->input('spouse_emplbiz_add');
$spouses->spose_income = $request->input('spose_income');
$spouses->save();
我总是犯同样的错误。
任何人都可以告诉我如何插入到我的数据库中的配偶在数组的细节,同时我是插入付款人。
在我正在学习的教程中,导师发送了以下代码,但它对我不起作用:
foreach($request->spouses as $spouse){
payer->spouses()->(['name'='$spouse'])
我想是因为他只有一个输入域。 但在我的情况下,我最多有4个。
我的配偶输入是一个livewire组件,代码如下
@foreach($spouses as $spouse)
<div class="col-md-10 d-flex">
{!! Form::hidden('user_id[]', 'Auth::user()->id',array(
'class' => 'form-control col-3',
'id' => 'user_id[]',
)) !!}
{!! 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-default fa fa-times text-danger padding:2"
wire:click="remove({{$loop->index}})"></span>
</div>
@endforeach
你可以尝试像这样的付款人和配偶模式。。。。
$payer = new Payer();
$payer->property = $request->property;
$payer->save();
if(count($request->spouse_name) > 0){
for($i = 0; $i < count($request->spouse_name); $i++){
$object = new Spouse();
$object->payer_id = $payer->id
$object->spouse_name= $request->spouse_name[$i];
$object->save();
}
}
我不是laravel,但是你想要完成的事情看起来很简单。
使用spouse_name数组确定应该循环多少次。 使用索引将数据关系维护为行。
如果这是错的,那我就不明白你的问题了。
foreach ($request->input('spouse_name') as $index => $spouseName) {
$spouses = new Spouse();
$spouses->user_id = Auth::user()->id;
$spouses->payer_id = $payer->id;
$spouses->spouse_occupation = 'NA';
$spouses->spouse_name = $spouseName;
$spouses->spouse_dob = $request->input('spouse_dob')[$index];
$spouses->spouse_emplbiz_add = $request->input('spouse_emplbiz_add')[$index];
$spouses->spose_income = $request->input('spose_income')[$index];
$spouses->save();
}