Я пытаюсь сделать союз, например:союз с использованием СО в Laravel/Lumen
$first = Content::selectRaw("id, title, channel_id, description")
->with('trailer')
->where('description', 'asdadadadaid');
$second = OtherTypeOfContent::selectRaw("id, title, channel_id, description")
->with('trailer')
->where('description', 'asdadadadaid');
$data = $first->union($second)->get();
Для Содержания, прицеп связан к столу contents_trailers. Для OtherTypeOfContent трейлер связан с таблицей othertypeofcontent_trailers.
Когда я пытаюсь сделать объединение между этими двумя запросами, всегда получаю значения content_trailers для with -> ('trailer'), также для результатов второго запроса. Кажется, что отношения берутся только с первого запроса.
Как я могу это решить? Спасибо!
Когда я когда-либо работать со сложными запросами SQL в красноречивых, которые дают результаты которые мне кажутся неправильными, я считаю полезным использовать метод Builder :: toSql() для получения SQL, который Eloquent намеревается запустить, поэтому я могу попробовать и отладить его. В вашем случае попробуйте вывести '$ first-> union ($ second) -> toSql();' и посмотреть, совпадает ли возвращаемый SQL с вашим ожиданием. Кроме того, вы можете добавить вывод к своему вопросу для большего контекста. – stratedge
Привет, xjstratedgebx! Конечно, я тестировал это, но часть с -> ('xxxx') никогда не печатается в выводе -> toSql() в любом запросе. Попробуй, и ты это увидишь. –
Хммм, так что вы не видите никаких объединений в полном запросе? Какими отношениями занимается трейлер? Можете ли вы опубликовать результирующий запрос и ваши настройки модели (за исключением каких-либо конфиденциальных данных, конечно)? – stratedge