2

我一直在尝试从 Laravel 5.3 中的动态表单中保存数据。但我无法将其保存为数组。错误显示

传递给 Illuminate\Database\Grammar::parameterize() 的参数 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('PaymentController@index');
}

请帮助解决这个问题。谢谢你。

4

2 回答 2

4

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

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('PaymentController@index');
}
于 2017-03-02T07:38:05.473 回答
0

Ty 创建这样的记录:

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

并将您的重定向操作更改为:

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

或者只是back(); 用来测试它是否有效

于 2017-03-02T07:34:03.593 回答