发布数组 Laravel 8 - 值返回为 NULL

莱恩B

我正在尝试将一个数组从我的表单发布到数据库表单字段显示为 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_idcreated_at并且updated_at正确记录了financeCompany,creditLimitconsolidate字段,但是,字段(来自表单)都显示为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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章