【问题标题】:How can i get many values with single key of json laravel?如何使用 json laravel 的单个键获取多个值?
【发布时间】:2019-04-09 21:48:34
【问题描述】:

您好,我想问一下如何在数组中发送 json,而不是一一发送。 我正在使用 laravel 和 vue.js 我是 laravel 的新手,我想了解更多 我尝试循环但失败了

这里是例子:

{
    "data": [
        [
            {
                "activity_id": 1,
                "start_date": "2018-11-06",
                "product_name": "ks",
                "topic_name": "exploration"
            }
        ],
        [
            {
                "subproduct_name": "bcd"
            },
            {
                "subproduct_name": "cfr"
            }
        ]
    ]
}

我想像这样得到他们

{
    "data": [
        [
            {
                "activity_id": 1,
                "start_date": "2018-11-06",
                "product_name": "ks",
                "topic_name": "exploration",
                "subproduct_name":["bcd","cfr"]
            }
        ],

    ]
}

这是我的控制器

 public function getActivity()
{



    $getData = DB::table('new__businesses')->select('new__businesses.activity_id','new__businesses.start_date','new__businesses.end_date','new__businesses.corporate_name','ms__subsidiaries.subsidiary_name','ms__products.product_name','ms__topics.topic_name')
    ->leftjoin('ms__subsidiaries','ms__subsidiaries.subsidiary_id','=','new__businesses.subsidiary_id')
    ->join('ms__products','ms__products.product_id','=','new__businesses.product_id')
    ->join('ms__topics','ms__topics.topic_id','=','new__businesses.topic_id')
    ->get();

    $getSubproduct = DB::table('new__businesses')
        ->select('ms__subproducts.subproduct_name')
        ->join('store__subproducts','store__subproducts.activity_id','=','new__businesses.activity_id')
        ->join('ms__subproducts','ms__subproducts.subproduct_id','=','store__subproducts.subproduct_id')
        ->get();

    $getPic = DB::table('new__businesses')
        ->select('ms__users.user_name')
        ->join('pics','pics.activity_id','=','new__businesses.activity_id')
        ->join('ms__users','ms__users.user_id','=','pics.user_id')
        ->get();

        return response()->json([
            'data'=>$getData,
            'pic'=>$getPic,
            'subproduct'=>$getSubproduct
        ]);        


}

}

请给我解决方案,我卡住了

【问题讨论】:

  • 您可以为子产品使用pluck 而不是get,因此它只会返回单个列值数组,而不是对象数组。
  • 谢谢。问题解决:)))))
  • @aynber 添加为答案,以便标记为正确

标签: php mysql arrays json laravel


【解决方案1】:

如果您使用 pluck 而不是 get,您将获得一个值数组而不是对象数组,然后您可以将其添加到您的数组中。

$getSubproduct = DB::table('new__businesses')
    ->join('store__subproducts','store__subproducts.activity_id','=','new__businesses.activity_id')
    ->join('ms__subproducts','ms__subproducts.subproduct_id','=','store__subproducts.subproduct_id')
    ->pluck('ms__subproducts.subproduct_name');

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多