在Laravel中组合5个表并按创建的排序
我正在制作广告网站,人们可以发布他们正在出售的东西。所以我有表:在Laravel中组合5个表并按创建的排序,laravel,eloquent,laravel-5.1,laravel-5.2,Laravel,Eloquent,Laravel 5.1,Laravel 5.2,我正在制作广告网站,人们可以发布他们正在出售的东西。所以我有表:cars、technology、real\u estate、pets等等。所有这些表都有不同的列,除了“created\u at”列,这是所有表的通用列 例如: 汽车:[型号,类型,燃料类型…,创建时间] 宠物:[名称,描述…,创建于] 因此,如果cars有5行,pets有7行,real\u estate有3行,我需要返回15行,按创建的排序。我需要合并所有5个(或更多)表,并按在处创建的_对它们进行排序(不丢失任何行)。 你有什么
cars
、technology
、real\u estate
、pets
等等。所有这些表都有不同的列,除了“created\u at”列,这是所有表的通用列
例如:
汽车:[型号,类型,燃料类型…,创建时间]
宠物:[名称,描述…,创建于]
因此,如果cars
有5行,pets
有7行,real\u estate
有3行,我需要返回15行,按创建的排序。我需要合并所有5个(或更多)表,并按在处创建的_对它们进行排序(不丢失任何行)。
你有什么建议或想法如何在laravel(雄辩)中做到这一点吗?我不相信你能对查询做任何有用的事情。联合要求所有查询返回相同数量的列,您可能不想加入这些表,因为这会造成混乱。我相信最好的解决方案是使用Collection
s
$collection = new \Illuminate\Support\Collection();
$sortedCollection = $collection->merge($pets)->merge($cars)->merge($realEsate)->sortBy('created_at');
我认为这更像是数据库模式问题<代码>广告
--变形关系--模型
您能帮我了解一下merge方法中的变量如何代表ex:$pets=Pet::all()。。。或者它代表表名“pets”?我是用Pet::all()做的,它可以工作。。非常感谢你!