【问题标题】:Nested json using mysql and php in laravel 5.2在 laravel 5.2 中使用 mysql 和 php 嵌套 json
【发布时间】:2016-08-09 00:40:00
【问题描述】:

我在 Laravel 5.2 中有一个选择代码,现在我想向嵌套的 json 显示所选业务 ID 的详细信息。类别和商家名称是重复的,所以我不想重复这两列。

我试过了

$menuproducts = DB::select("SELECT 
                             business.name as bizname, 
                             category.name as categoryname, 
                             products.name as productname
                        FROM menu
                             INNER JOIN products ON products.id = menu.product_id
                             INNER JOIN category ON category.id = products.category_id
                             INNER JOIN business ON business.id = menu.business_id
                        WHERE menu.business_id = $id"
                            );

        return $menuproducts;

结果如下:

[{"bizname":"Tivoli","categoryname":"Pizza","productname":"Margarita"},{"bizname":"Tivoli","categoryname":"Pizza","productname":"Molino"},{"bizname":"Tivoli","categoryname":"Pije","productname":"Coca Cola"},{"bizname":"Tivoli","categoryname":"Fast Food","productname":"Hamburger"},{"bizname":"Tivoli","categoryname":"Pizza","productname":"Pizza Sendwich"},{"bizname":"Tivoli","categoryname":"Pije","productname":"Pepsi"}]

想法是通过这种方式获取列表:

{  
   "business":[  
      {  
         "bizname":"Tivoli",
         "category":{  
            "name":"Pizza",
            "id":"500920000",
            "products":[  
               {  
                  "productname":"Margarita",
                  "price":"250"
               },
               {  
                  "productname":"Tuna Pizza",
                  "price":"350"
               }
            ],
            "category":{  
               "name":"Fast Food",
               "id":"500920000",
               "products":[  
                  {  
                     "productname":"Tost",
                     "price":"60"
                  },
                  {  
                     "productname":"Hamburger",
                     "price":"80"
                  }
               ]
            }
         }
      }
   ]
}

【问题讨论】:

    标签: php mysql json laravel-5.2


    【解决方案1】:

    我已经尝试过这段代码,它工作得很好。 但现在我想在 json 中有列名。

    $menuproducts = DB::select("SELECT 
                                                business.name as bizname, 
                                                category.name as categoryname, 
                                                products.name as productname,
                                                menu.product_id as productid,
                                                menu.price as productprice
                                        FROM menu
                                            INNER JOIN products ON products.id = menu.product_id
                                            INNER JOIN category ON category.id = products.category_id
                                            INNER JOIN business ON business.id = menu.business_id
                                        WHERE menu.business_id = $id"
                                    );
    
                        $rows = json_decode(json_encode($menuproducts), true);
                        $res=array();
    
                        foreach($rows as $row)
                        {
                          $res[$row['bizname']][$row['categoryname']][$row['productname']][] = $row['productprice'];
    
                        }
    
                        return Response::json($res, 200, array(), JSON_PRETTY_PRINT);
    

    【讨论】:

      猜你喜欢
      • 2016-06-24
      • 2019-01-10
      • 1970-01-01
      • 2018-09-05
      • 2017-07-18
      • 2018-12-29
      • 2021-10-05
      • 2016-07-12
      • 1970-01-01
      相关资源
      最近更新 更多