Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Laravel中组合5个表并按创建的排序_Laravel_Eloquent_Laravel 5.1_Laravel 5.2 - Fatal编程技术网

在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()做的,它可以工作。。非常感谢你!