从两个表和 laravel 中的 orderBy 日期查询
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();
提前致谢
假设它们在不同的表上,我可以想到 2 个解决方案:
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;
我的 Eloquent 每个都有两个表。我想从他们每个人那里获得特定领域的结果(使用 where 子句)
然后我想合并两个结果数组并按创建日期提交
排序我怎样才能在 laravel5 中做到这一点?我尝试使用关系,但无法正常工作
本例将两个数组分开
$football = Football::where('playerId','=',$id)->get()->toArray();
$tennis= Tennis::where('playerId','=',$id)->get()->toArray();
提前致谢
假设它们在不同的表上,我可以想到 2 个解决方案:
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;