如何使用Laravel解析字段名称

时间:2019-05-21 09:31:29

标签: arrays json laravel parsing

我的控制器代码:

     public function usersGroups(Request $request)
   {
    $resultArray = [];

        $users = DB::table('users')
            ->join('user_basic_info','users.id','=','user_basic_info.user_id')
            ->select('users.id','user_basic_info.first_name')->get();
        $resultArray['users'] = $users;

        $groups = DB::table('group')
            ->select('group.id','group.name')->get();
        $resultArray['groups'] = $groups;


    return \Illuminate\Support\Facades\Response::json($resultArray, 200);
}

我的回应:

                     {
"users": [
    {
        "id": 1,
        "first_name": "Admin"
    },
    {
        "id": 2,
        "first_name": "Admin"
    },
    {
        "id": 3,
        "first_name": "Admin"
    },
    {
        "id": 4,
        "first_name": "Admin"
    }
],
"groups": [
    {
        "id": 1,
        "name": "Our Lira"
    },
    {
        "id": 2,
        "name": "CM"
    }
  ]
     }

在这里,我有一个字段名first_name,我想将其更改为name而不更改表中仅为此API的字段名,我想将first_name更改为name。 我怎样才能做到这一点? 您的帮助需要在这里

3 个答案:

答案 0 :(得分:1)

您可以简单地使用MySQL创建别名:

$users = DB::table('users')
            ->join('user_basic_info','users.id','=','user_basic_info.user_id')
            ->select('users.id','user_basic_info.first_name as name')->get();

请注意选择查询中的as name

答案 1 :(得分:0)

使用API Resource

这些类可让您将模型转换为所需的JSON格式/布局。

答案 2 :(得分:0)

我的api不太好,但是您可以通过设置名字来达到目的

public function usersGroups(Request $request)
   {
    $resultArray = [];

        $users = DB::table('users')
            ->join('user_basic_info','users.id','=','user_basic_info.user_id')
            ->select('users.id','user_basic_info.first_name as name')->get();
        $resultArray['users'] = $users;

        $groups = DB::table('group')
            ->select('group.id','group.name')->get();
        $resultArray['groups'] = $groups;


    return \Illuminate\Support\Facades\Response::json($resultArray, 200);
}

如果下面有任何错误,请您尝试一下