Twi*_*kle 0 php eloquent laravel-5
我有两个表,每个表用于其 Eloquent 。我想从他们每个人那里获得特定领域的结果(使用where子句)
然后我想组合两个结果数组并按创建日期归档对它们进行排序
我怎样才能在 laravel5 中实现这一目标?我尝试利用关系但无法使其发挥作用
这个例子分别是两个数组
$football = Football::where('playerId','=',$id)->get()->toArray();
$tennis= Tennis::where('playerId','=',$id)->get()->toArray();
Run Code Online (Sandbox Code Playgroud)
提前致谢
假设它们位于不同的表上,我可以想到两种解决方案:
1)首先你必须获取两个结果,然后你可以使用 php 进行排序
$results = array_merge($football, $tennis);
usort($results, function($a,$b) {
return $a['created_at'] < $b['created_at'];
});
Run Code Online (Sandbox Code Playgroud)
2) 使用原始查询,运行 UNION :
SELECT * FROM (
SELECT * FROM football WHERE playerId = X
UNION ALL
SELECT * FROM tennis WHERE playerId = X
) AS A ORDER BY created_at;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2166 次 |
| 最近记录: |