我正在尝试将一个数组从我的表单发布到数据库表单字段显示为 NULL
HTML 表单摘录:
@foreach (range(0,9) as $x)
<div class="row m-3 credit-card-details">
<div class="col-lg-4">
<div class="form-group">
<label for="financeCompany-{{ $x }}">Finance Company name #{{ $x }}</label>
<input type="text" class="form-control" id="financeCompany-{{ $x }}" name="creditCards[{{ $x }}][financeCompany]" value="" placeholder="Finance Company Name" />
</div>
</div>
<div class="col-lg-4">
<div class="form-group">
<label for="creditLimit-{{ $x }}">Credit limit</label>
<input type="text" class="form-control" id="creditLimit-{{ $x }}" name="creditCards[{{ $x }}][creditLimit]" value="" placeholder="$" />
</div>
</div>
<div class="col-lg-4">
<div class="form-group">
<label for="consolidate-{{ $x }}">Consolidate this card?</label>
<input type="text" class="form-control" name="creditCards[{{ $x }}][consolidate]" id="consolidate-{{ $x }}" value="" />
</div>
</div>
</div>
@endforeach
我的控制器:
public function store(CreateApplicationRequest $request, Applicant $applicant, CreditCard $creditCard)
{
$applicant = Applicant::create([
...
]);
$application = $applicant->application()->create([
...
]);
$creditCards = $request->input('creditCards');
foreach ($creditCards as $creditCard)
{
$application->creditCards()->create([
'financeCompany' => $request->input('financeCompany'),
'creditLimit' => $request->input('creditLimit'),
'consolidate' => $request->input('consolidate')
]);
}
...
}
我的 dd 结果显示如下:
在我的credit_cards
表中创建了正确数量的记录application_id
,created_at
并且updated_at
正确记录了financeCompany
,creditLimit
和consolidate
字段,但是,和字段(来自表单)都显示为NULL
.
数据库:
信用卡型号:
protected $fillable = [
'application_id',
'financeCompany',
'creditLimit',
'consolidate'
];
数据库仅收集 application_id。
在这方面仍然很新,任何帮助将不胜感激。
所以你request()
有$creditCards
它的外观。您感兴趣的值似乎在$creditCards
你需要做这样的事情
collect($creditCards)
->each(fn ($creditCard) => $application->creditCards()
->create([
'financeCompany' => creditCard['financeCompany'],
'creditLimit' => creditCard['creditLimit'],
'consolidate' => creditCard['consolidate']
])
);
或者如果你想使用 foreach
foreach ($creditCards as $creditCard) {
$application->creditCards()->create([
'financeCompany' => creditCard('financeCompany'),
'creditLimit' => creditCard('creditLimit'),
'consolidate' => creditCard('consolidate')
]);
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句