Laravel,将数据从数组保存到数据库

时间:2017-08-13 21:14:11

标签: php mysql laravel laravel-5

我需要将此数组中的数据保存到MySQL数据库

0 => {#517 ▼
    +"id": 59
    +"name": "example_name_1"
    +"category": "category_1"
    +"price": 100
    +"description": "example_description_1"
}
1 => {#516 ▼
    +"id": 60
    +"name": "example_name_2"
    +"category": "category_2"
    +"price": 200
    +"description": "example_description_2"
}

我试着像这样保存,但是像

这样的错误
  

未定义的索引:名称

for ($idx = 0; $idx < count($products); $idx++)
{
    $values = new Product();
    $values->name = $products["name"][$idx];
    $values->category= $products["category"][$idx];
    $values->description = $products['description'][$idx];
    $values->price = $products['price'][$idx];
    $values->save();
}

1 个答案:

答案 0 :(得分:3)

您收到该错误,因为您访问该数组的顺序不正确。

订单应该是产品索引,然后是名称,类别或任何字段。

for ($idx = 0; $idx < count($products); $idx++)
{
    $values = new Product();
    $values->name = $products[$idx]["name"];
    $values->category= $products[$idx]["category"];
    $values->description = $products[$idx]['description'];
    $values->price = $products[$idx]['price'];
    $values->save();
}

或者你可以轻松地使用foreach作为评论中提到的@VincentDecaux。

foreach ($products as $product) {
    $values = new Product();
    $values->name = $product["name"];
    $values->category= $product["category"];
    $values->description = $product['description'];
    $values->price = $product['price'];
    $values->save();
}