我正在制作广告网站,人们可以发布他们正在销售的东西。所以我有表:cars
,technology
,real_estate
,pets
等。所有这些表都有不同的列,除了" created_at"所有表格共有的列。
示例:
CARS:[型号,类型,燃料类型......,created_at]
PETS:[名称,描述......,created_at]
因此,如果cars
有5行且pets
有7行而real_estate
有3行,我需要返回按created_at
排序的15行。我需要合并所有5个(或更多)表并按created_at对它们进行排序(不丢失任何行)。
你是否有一些提示或想法如何在laravel中做到这一点(Eloquent)?
答案 0 :(得分:0)
我不相信你可以对查询做任何有用的事情。联合会要求所有查询返回相同数量的列,您可能不想加入这些表,因为这只是一个混乱的混乱。我认为最好的解决方案是使用Collection
s。
$collection = new \Illuminate\Support\Collection();
$sortedCollection = $collection->merge($pets)->merge($cars)->merge($realEsate)->sortBy('created_at');