Как разобрать имя поля с помощью laravel - PullRequest
2 голосов
/ 21 мая 2019

Код моего контроллера:

     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 ]

1 голос
/ 21 мая 2019

Вы можете просто создать псевдоним, используя 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 в запросе выбора.

0 голосов
/ 21 мая 2019

Я не очень хорош в API, но вы можете добиться этого, установив имя alaias

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

Можете ли вы попробовать это, если есть какая-либо ошибка, любезно прокомментируйте ниже

0 голосов
/ 21 мая 2019

Используйте Ресурс API

Это классы, которые позволяют преобразовывать ваши модели в любой желаемый формат / формат JSON.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...