Использование псевдонима в Laravel Query

join eloquent laravel-5.2

1356 просмотра

2 ответа

У меня есть функция на модели:

public function getAll()
    {
        $allusers = DB::table('users')->join('countries', 'countries.id', '=', 'users.country_id')->get();
        return $allusers;
    }

Это работает нормально, за исключением того, что идентификатор пользователя заменяется идентификатором страны:

array(2) { [0]=> object(stdClass)#201 (20) { ["id"]=> int(42) ["name"]=> string(11) "Jim Elliott" ... and so on

Идентификатор должен быть 1, поскольку country_id - 42.

Должен ли я добавить псевдоним для идентификатора страны и так как? Или я могу ограничить поля таблицы стран только страной и флагом?

Автор: Jim Источник Размещён: 08.11.2019 11:17

Ответы (2)


0 плюса

В конце концов, я изменил, чтобы связать две таблицы и присвоить псевдоним идентификатору страны. Не элегантное решение, но оно сработало. Я уверен, что есть правильный способ сделать это в Laravel без представления, поэтому моя функция стала:

$allusers = DB::table('v_users')->get();
return $allusers;
Автор: Jim Размещён: 21.08.2016 08:30

0 плюса

$users = DB::table('users')->join('countries', 'countries.id', '=', 'users.country_id')
    ->select(DB::raw(
      "SELECT users.*,countries.*, users.id AS 'user_id',
      countries.id AS 'country_id'"
    );
Автор: msonowal Размещён: 20.08.2016 05:22
Вопросы из категории :
32x32