使用 Laravel 将带有嵌套数组的数组保存在数据库中

问题描述 投票:0回答:3

我正在使用 AJAX 向 Laravel 控制器发送请求,它是一个带有子数组的数组,如下所示:

[["ferrari","1200","2","Italy"],["BMW", "35000", "4", "Germany"]]

其中每个子数组都是我桌子上的一行

Cars
,其中包含以下列:
brand, mileage, seats, origin_country

我需要一些帮助来开始保存过程,将它们保存到我的数据库中,我不知道该怎么做。

php laravel eloquent
3个回答
0
投票
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();
}

0
投票


$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
        )

)


0
投票

您可以利用 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(); 
]);
© www.soinside.com 2019 - 2024. All rights reserved.