Объединения Laravel Query Builder: добавьте столбец «имя таблицы»Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Объединения Laravel Query Builder: добавьте столбец «имя таблицы»

Сообщение Anonymous »

Существует 3 разные таблицы базы данных: статьи, обзоры, сообщения, и все они имеют следующие столбцы: 'id', 'title', 'user_id', 'created_at', 'body'.

Я использую Laravel 5.6 и пакет yajra/laravel-datatables, поэтому мне нужно «объединить» эти три таблицы и поместить их в Таблицы данных jQuery.
Для этого я использую метод построения запросов Laravel Union:

$fields = [
'id',
'title',
'user_id',
'created_at',
'body'
];

$articles = DB::table('articles')->select($fields);
$reviews = DB::table('reviews')->select($fields);
$posts = DB::table('posts')->select($fields);

$union = $articles->union($reviews)->union($posts)->get();

dd($union);


... и это отлично работает, результат выглядит так:

+----+-------------+---------+------------+------+
| id | title | user_id | created_at | body |
+----+-------------+---------+------------+------+
| 1 | Some title | 1 | ... | ... |
| 1 | Lorem ipsum | 2 | ... | ... |
| 1 | Test | 1 | ... | ... |
+----+-------------+---------+------------+------+


Проблема в том, что мне нужно знать, из какой таблицы каждая запись (строка).
Можно ли добавить собственный столбец (например, «источник»), который будет содержать имя таблицы БД? (с помощью конструктора запросов)

+----+-------------+---------+------------+------+----------+
| id | title | user_id | created_at | body | source |
+----+-------------+---------+------------+------+----------+
| 1 | Some title | 1 | ... | ... | articles |
| 1 | Lorem ipsum | 2 | ... | ... | reviews |
| 1 | Test | 1 | ... | ... | posts |
+----+-------------+---------+------------+------+----------+


Подробнее здесь: https://stackoverflow.com/questions/519 ... ame-column
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»