从两个表中查询,并在laravel中按日期排序


Query from two tables and orderBy date in laravel

我有两个表,每个表都有Eloquent。我想从他们中的每一个获得特定字段的结果(使用where子句)

然后我想组合两个结果数组,并通过创建日期字段对它们进行排序

我怎样才能在laravel5中实现这一点?我试着利用关系,但无法实现

这是两个阵列分别的例子

 $football = Football::where('playerId','=',$id)->get()->toArray();
  $tennis= Tennis::where('playerId','=',$id)->get()->toArray(); 

提前感谢

假设它们在不同的表上,我可以想到两个解决方案:

1) 首先必须获取两个结果,然后可以使用在php中进行排序

$results = array_merge($football, $tennis);
usort($results, function($a,$b) { 
    return $a['created_at'] < $b['created_at'];
});

2) 使用原始查询,运行UNION:

SELECT * FROM (
  SELECT * FROM football WHERE playerId = X
  UNION ALL 
  SELECT * FROM tennis WHERE playerId = X
) AS A ORDER BY created_at;