【问题标题】:How to parse field name using laravel如何使用 laravel 解析字段名称
【发布时间】:2019-10-07 16:07:54
【问题描述】:

我的控制器代码:

     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。 我怎样才能做到这一点? 您的帮助需要在这里

【问题讨论】:

    标签: arrays json laravel parsing


    【解决方案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

    【讨论】:

      【解决方案2】:

      使用API Resource

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

      【讨论】:

        【解决方案3】:

        我的 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);
        }
        

        如果有任何错误,你可以试试这个,请在​​下面评论

        【讨论】:

        • 在发布自己的答案之前,您应该更好地阅读其他人的答案:),因为它与您 15 分钟前回答的答案没有什么不同 :)
        • 对不起@nakov 我还没有刷新标签
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-01-28
        • 1970-01-01
        • 2019-07-26
        • 2011-04-23
        • 1970-01-01
        • 2011-03-29
        相关资源
        最近更新 更多