首页 > 解决方案 > 如何制作多个json对象-使用laravel

问题描述

我想在我的 json 响应中创建对象我已经实现了这个功能,但我想在我的响应中做更多我目前得到的响应是:

"privileges": {
    "facilities": [
    {
        "facility_id": 1,
        "speciality_id": 1,
        "is_facility_supervisor": 1
    },
    {
        "priv_key": "ced"
    }
    ]
}

但是我想将“priv_key”:“ced”添加到我的设施对象中,还有一件事我想添加“is_super_admin”:1.到“如下所示的特权:

"privileges": { 
    "is_super_admin": 1,
    "facilities": [
    {
        "facility_id": 1,
        "speciality_id": 1,
        "is_facility_supervisor": 1
    },
    {
        "priv_key": "ced"
    }
    ]
}

我如何实现上述功能这是我的控制器代码:

$response = array(); 
$response['facilities'] = DB::table('users')->where('is_super_admin')->first();
$response['facilities'][0] = DB::table('user_facility')->select('user_facility.facility_id','user_facility.speciality_id','user_facility.is_facility_supervisor')->where('user_id',$currentUser->id)->first();
$response['facilities'][1] = DB::table('prev_definition')->select('prev_definition.priv_key')->where('user_id',$currentUser->id)->first();

以及我发送响应的登录名:

return response()->json([
    'status' => true,
    'message' => 'Login successfully',
    'data' => [
        'privileges' => $response
    ]
]);

我不知道如何实现上述功能,请任何人帮助我,您的帮助将不胜感激!

标签: phparrayslaravelobject

解决方案


当您使用 response->json([]) 返回此数组时,首先获取您想要与数组映射的所有数据,它将您的数组转换为 json 对象。

$is_super_admin = DB::table('users')->where('is_super_admin')->first();
$speciality_id = DB::table('user_facility')->select('user_facility.facility_id','user_facility.speciality_id','user_facility.is_facility_supervisor')->where('user_id',$currentUser->id)->first();
$priv_key = DB::table('prev_definition')->where('user_id',$currentUser->id)->pluck('priv_key')->first();
$response = [
        'privileges'=>[
            'is_super_admin'=>$is_super_admin ,
            'facilities'=>[
             [
                'facility_id'=>1,
                'speciality_id'=>$speciality_id ,
                'is_facility_supervisor'=>1,
                 'priv_key'=>$priv_key
             ],
            ]
        ]
    ];

return response()->json([
'status' => true,
'message' => 'Login successfully',
'data' => $response

]);

$response 的示例结果:

{
    "privileges": {
    "is_super_admin": 1,
    "facilities": [
     {
        "facility_id": 1,
        "speciality_id": 1,
        "is_facility_supervisor": 1,
         "priv_key": "ced"
     },
   ]
  }
}

推荐阅读