我正在使用 AJAX 向 Laravel 控制器发送请求,它是一个带有子数组的数组,如下所示:
[["ferrari","1200","2","Italy"],["BMW", "35000", "4", "Germany"]]
其中每个子数组都是我桌子上的一行
Cars
,其中包含以下列:brand, mileage, seats, origin_country
我需要一些帮助来开始保存过程,将它们保存到我的数据库中,我不知道该怎么做。
foreach ($request->all() as $row) {
$car = new Car();
$car->brand = $row[0];
$car->mileage = $row[1];
$car->seats = $row[2];
$car->origin_country = $row[3];
$car->save();
}
$ar=[["ferrari","1200","2","Italy"],["BMW", "35000", "4", "Germany"]];
$keys=['brand', 'mileage', 'seats', 'origin_country'];
$data=array_map(static function ($i) use($keys){
return array_combine($keys, (array)$i);
},$ar);
YoruModel::create($data); //bulk write
读取数据变量
print_r($data);
输出
Array
(
[0] => Array
(
[brand] => ferrari
[mileage] => 1200
[seats] => 2
[origin_country] => Italy
)
[1] => Array
(
[brand] => BMW
[mileage] => 35000
[seats] => 4
[origin_country] => Germany
)
)
您可以利用 Laravel Collection::each 方法在访问创建新集合的数组的每个元素时执行操作。
$collections = collect([
["ferrari","1200","2","Italy"],
["BMW", "35000", "4", "Germany"]
]);
$collections->each(function ($item, $key) {
$car = Car::create([
'brand' => $item[0],
'mileage' => $item[1],
'seats' => $item[2],
'origin_country' => $item[3]
]);
$car->save();
]);