У меня есть две таблицы для своего "Красноречивого". Я хотел бы получить результаты от каждого из них для конкретной области (используя предложение where)
то я хочу объединить оба приведенных массива и упорядочить их с помощью createdAt date filed
Как я могу достичь этого в 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;