【问题标题】:how do i loop through this associative array and save it to the database?我如何遍历这个关联数组并将其保存到数据库中?
【发布时间】:2020-08-12 01:58:03
【问题描述】:

我有这个请求以这种格式进入服务器,我如何将它保存到数据库中,我是 Laravel 的新手,而且我有三个模型,Trip(存储前 4 个键值对的地方),Location(存储源和目标数组的位置),然后将类别存储在类别模型中

{
    "name": "glass cup",
    "weight" : "12kg",
    "quantity": 400,
    "source": {
         "longitude":122324,
         "latitude":231242,
         "address": "this is just a new address",
         "place_id":23234
    },
    "destinations": [
        {
             "longitude":122324,
             "latitude":231242,
             "address": "this is just a new address",
             "place_id":23234
        },
        {
            "longitude":122324,
            "latitude":231242,
            "address": "this is just a new address",
            "place_id":23234
        },
        {
            "longitude":122324,
            "latitude":231242,
            "address": "this is just a new address",
            "place_id":23234
        }
    ],
    "categories": ["food", "clothes", "utensils"]

}

【问题讨论】:

    标签: php arrays laravel


    【解决方案1】:

    要么将其保存为 JSON,要么创建适当的文件以插入数据库。另外,不知道表之间是否有任何关系,但是要插入数据,您可以执行以下操作:

    $trip = new \App\Models\Trip;
    $trip->name = $request->name;
    $trip->weight = $request->weight;
    $trip->quantity = $request->quantity;
    $trip->save();
    

    对于目的地,您只需循环项目:

    foreach ($request->destinations as $dest)
    {
        $location = new \App\Models\Location;
        $location->longitude = $dest->longitude;
        $location->latitude = $dest->latitude;
        $location->address = $dest->address;
        $location->place_id = $dest->place_id;
        $location->save();
    }
    

    如果您想将trip id 保存在location 表中,只需使用$location->trip_id = $trip->id;

    【讨论】:

    • 我看到你的答案,我现在就试试
    • 我如何将它附加到多对多关系?假设我已经有了中间表
    猜你喜欢
    • 2022-11-14
    • 2019-05-13
    • 2020-09-16
    • 2016-01-08
    • 2021-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-31
    相关资源
    最近更新 更多