dongliang1865 2019-05-15 08:20
浏览 680
已采纳

如何使用laravel将两个对象合并为一个对象

I am getting objects response like this:

                       "facilities": [
            [
                {
                    "facility_id": 1,
                    "speciality_id": null,
                    "is_facility_supervisor": 0,
                    "priv_key": "can_add_doctor,can_view_doctor"
                }
            ],
            {
                "name": "Patient",
                "role_id": 7
            }
        ]

I want name and role_id into facilities and i want expected output like this

               "facilities": [
            [
                {
                    "facility_id": 1,
                    "speciality_id": null,
                    "is_facility_supervisor": 0,
                    "priv_key": "can_add_doctor,can_view_doctor",
                    "name": "Patient",
                     "role_id": 7

                }
            ],

        ]

How i can achieve this output name and role_id is in separate object but i want in one object like i shared.

My Code:

$specialities = DB::table('user_facility')
->select('user_facility.facility_id','user_facility.speciality_id','user_facility.is_facility_supervisor','user_facility.priv_key')
->where('user_id',$currentUser->id)->get();

         $roles = DB::table('roles')
        ->join('user_facility', 'roles.id', 'user_facility.role_id')
        ->where('user_facility.user_id', Auth::user()->id)
        ->select('roles.name','user_facility.role_id')->first();

    $superadmin = $is_super_admin->is_super_admin;
    $specialities = (object) $speciality_id;

    $response = ['is_super_admin' => $superadmin, 'facilities' => array_merge([$specialities,$roles])];

Your help will be highly appreciated?

  • 写回答

1条回答 默认 最新

  • doumicheng6732 2019-05-15 08:29
    关注

    How about:

    $specialitiesAndRoles = DB::table('roles')
    ->join('user_facility', 'roles.id', 'user_facility.role_id')
    ->where('user_facility.user_id', Auth::user()->id)
    ->select('user_facility.facility_id','user_facility.speciality_id','user_facility.is_facility_supervisor','user_facility.priv_key','roles.name','user_facility.role_id')
    ->get();
    

    When you are anyway joining both tables. Just select everything from the joined table. Please check/add if you have any more where clauses.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)
  • ¥15 AIC3204的示例代码有吗,想用AIC3204测量血氧,找不到相关的代码。