在Laravel中保存来自动态表单的数据

问题描述:

我一直在尝试从Laravel 5.3中的动态表单保存数据。但是我不能将它保存为数组。该错误显示在Laravel中保存来自动态表单的数据

参数1传递给照亮\数据库\语法::参数()必须是类型阵列,串给定的...

形式:

<select class="form-control-sm" name="client_id[]"> 
<input type="text" class="form-control-sm" name="amount[]"> 

型号:

protected $fillable = ['client_id', 'amount']; 

public function client() 
{ 
    return $this->belongsTo('App\Client'); 
} 

控制器:

public function store(Request $request) 
{ 
    $count = Client::count(); 

    $payment = Payment::create(['amount' => $request->amount, 
           'client_id' => $request->client_id, 
           ]); 
    $payment->save(); 

    return redirect()->action('[email protected]'); 
} 

请帮忙。谢谢。

+0

对于哪一行你会得到错误? – Onix

+0

@Onix我不确定。它看起来像输入类型是字符串,它应该是数组。我想我需要通过控制器存储数组。 – Ahsan

+0

如何在输入栏输入金额? –

您正在提交带有文本字段和选择框的数组,请尝试 以下

public function store(Request $request) 
{ 
    $count = Client::count(); 
    foreach($request->client_id as $key=>$val){ 
    $payment = Payment::create(['amount' => $request->amount[$key], 
           'client_id' => $val, 
           ]); 
} 

return redirect()->action('[email protected]'); 
} 
+0

谢谢。这工作 – Ahsan

泰创造这样的记录:

$payment = Payment::create($request->input); 

,并更改您重定向行动,这一点:

View::make('path/to/view/') 

或只使用只是back();只是为了测试它是否工作