我的Eloquent每个都有两个表。我想从特定字段中获取每个字段的结果(使用where子句)
然后我想结合两个结果数组并按createdAt date filed
命令它们如何在laravel5中实现这一目标?我尝试过利用关系,但不能让它发挥作用
这两个数组的例子分开
$football = Football::where('playerId','=',$id)->get()->toArray();
$tennis= Tennis::where('playerId','=',$id)->get()->toArray();
提前致谢
答案 0 :(得分:4)
假设他们在不同的桌子上,我可以想到两个解决方案:
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;