如何在larvel5.0中使用数组输入的保存方法

How to use save method with array inputs in larvel5.0

本文关键字:输入 数组 保存 方法 larvel5      更新时间:2023-09-26

我想在laravel中使用save方法保存所有数组输入到数据库

HTML表单

 <form>
       <input class="form-control" name="amount[]" type="text"/>
       <input class="form-control" name="price[]" type="text"/>
 </form>

我使用了Javascript

var data = $('#form_A').serializeArray();
PHP

$cust = new customer();
$all_input = Request::input();
foreach($all_input as $k=>$vals) {
     $data[] = ['amount'=>$vals];
}
$cust = $data;
$cust->save();

你可以这样做:

$customer = new Customer();
$customer->fill($request->only($customer->getFillable()));
$customer->save();

->getFillable()将返回您在客户模型中声明的可填充值,将其与$request->only()一起使用将导致只有模型可以填充的键+值对的数组。然后->fill()不言自明:)

一行

$cust = $data;

你不再有一个customer类的对象,而是一个数组,所以在它上面调用save()会给你一个错误"在非对象上调用save()方法"。

我不知道你的模式看起来像什么,但是如果你想用数组中的数据填充模型,那么你可以使用fill()方法(需要在$fillable中指定这些属性,或者你可以逐个分配它们:

$cust->amount = $data['amount'];
$cust->price = $data['price'];
$cust->save();