首页 > 解决方案 > 如何使用 Adonisjs 在列表中的表单列表中显示数据

问题描述

我有一个只有一个列表的数据,我想在列表中显示此数据,如列表,

这是我的查询以及我如何返回它:

const cart = await DB
    .select('carts.id_cart','carts.id_product','product.shop_id','product.product_name','product.price',
                'shop.shop_name','shop.address', DB.raw('count(carts.id_product) as quantity'))
    .from('carts')
    .leftJoin('product', 'carts.id_product', 'product.product_id')
    .leftJoin('shop', 'shop.id_shop', 'product.shop_id')
    .groupBy('carts.id_product')
    .where({'product.is_deleted':'0'})

return response.json({
    status:true,
    message: false,
    data: cart
})

这段代码的结果是这样的:

{
    "status": true,
    "message": false,
    "data": [
        {
            "id_cart": "1",
            "id_product": "1",
            "shop_id": "1",
            "product_name": "test1",
            "price": 11111,
            "shop_name": "John Doe",
            "address": "Quis et eu cumque Na",
            "quantity": 1
        }
     ]

我希望结果改变如下:

[

    "status": true,
    "message": false,
    "data": [
        {
          "id_cart": "1",
          "shop_id" : "1",
          "product" : [
             {
                "id_product": "1",
                "product_name": "test1",
                "price": 11111,
                "shop_name": "John Doe",
                "address": "Quis et eu cumque Na",
                "quantity": 1
             }
          ]
        }
    ]

]

任何人都可以帮助我吗?

标签: mysqlnode.jsmultidimensional-arraydatabase-relationsadonis.js

解决方案


添加了对相同的支持。在 AdonisJs 中做一个嵌套查询构建器

.whereHas对您有.has帮助,请参阅此链接:Inject new data into query object

在查询中,我们使用jsonb_agg以及jsonb_build_object何时制作嵌套对象。


推荐阅读