Как показать данные из многих моделей и отсортировать их в одной таблице (laravel) - PullRequest
0 голосов
/ 16 декабря 2018

У меня есть четыре модели, называющие это ABCD, и все, что я хочу сделать, это отобразить и отсортировать его в одну таблицу, как это

+----+-------+---------------------+-------+
| 1. | B-5   | 2018-12-11 10:52:22 | 20    |
+----+-------+---------------------+-------+
| 2. | A-4   | 2018-12-11 09:52:22 | 10    |
+----+-------+---------------------+-------+
| 3. | C-3   | 2018-12-11 08:52:22 | 20    |
+----+-------+---------------------+-------+

, для SQL-запроса это выглядит так

SELECT `code`, `updated_at`, `qty` FROM `a`
UNION ALL
SELECT `code`, `updated_at`, `qty` FROM `b`
UNION ALL
SELECT `code`, `updated_at`, `qty` FROM `c`
UNION ALL
SELECT `code`, `updated_at`, `qty` FROM `d`
ORDER BY `updated_at`

возможно ли это сделать?и если это возможно, как это сделать?

1 Ответ

0 голосов
/ 16 декабря 2018

Используйте для этого соединения, вот пример:

$codes= DB::table('a')
            ->join('b', 'a.id', '=', 'b.user_id')
            ->join('c', 'a.id', '=', 'c.user_id')
            ->join('d', 'a.id', '=', 'd.user_id')
            ->select('a.*', 'b.*', 'c.*')
            ->orderBy('a.updated_at','desc')
            ->get();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...