Столкнулся с действительно странной ошибкой и не может понять, почему это происходит. Пожалуйста, смотрите объяснение ниже, чтобы понять проблему!
Что у меня есть:
- 3 модели: Ведро , Шаблон и DesignPack .
- Ведро имеет отношение «многие ко многим (Polymorphi c)» с Template и DesignPack (это означает, что у нас есть сводная таблица сгибаемость ).
- По сути Ведро может иметь (быть связанным с) оба: Шаблон и DesignPack .
- Laravel 6 . *
Что я хочу сделать:
- Я хочу объединить все модели Bucket Template и DesignPack (используя union) с указанием * Только 1107 * столбцов. Хочется, чтобы с нумерацией тоже было нумерация страниц, поскольку у нас может быть слишком много элементов:)
Что я сделал: Я попробовал несколько решений, но ни одно из них не получилось, те же ошибки. Ниже приведен пример того, что я пробовал:
$templates = Bucket::find($bucket_id)->templates()->select('id', 'file_name as name', 'size', 'preview');
$design_packs = Bucket::find($bucket_id)->dps()->select('id', 'name', 'size', 'preview');
$bt_uploads = $templates->union($design_packs)->paginate(20);
return UserUploadResource::collection($bt_uploads);
Ошибка, которую я постоянно получаю:
"SQLSTATE [21000]: Нарушение количества элементов: 1222 Используемые операторы SELECT имеют различное количество столбцов (SQL: выберите количество () как совокупность из ((выберите id
, file_name
как name
, size
, preview
, templates
. , bucketables
. bucket_id
как pivot_bucket_id
, bucketables
. bucketable_id
как pivot_bucketable_id
, bucketables
. bucketable_type
как pivot_bucketable_type
из templates
внутреннее соединение bucketables
on templates
. id
= bucketables
. bucketable_id
, где bucketables
. bucket_id
= 3 и bucketables
. bucketable_type
= App \ Template, а templates
. deleted_at
равно нулю) объединение (выберите id
, name
, size
, preview
из design_packs
внутреннее соединение bucketables
в design_packs
. id
= bucketables
. bucketable_id
, где bucketables
. bucket_id
= 3 и bucketables
. bucketable_type
= App \ DesignPack и design_packs
. deleted_at
равно нулю)) как temp_table
) "
Большое спасибо, ребята, за любую помощь и идеи !