Запрос из двух таблиц и порядок по дате в laravel

0

У меня есть две таблицы для своего "Красноречивого". Я хотел бы получить результаты от каждого из них для конкретной области (используя предложение where)

то я хочу объединить оба приведенных массива и упорядочить их с помощью createdAt date filed

Как я могу достичь этого в laravel5? Я пытался использовать отношения, но не могу заставить его работать

этот пример из двух массивов отдельно

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

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

заранее спасибо

Теги:
eloquent
laravel-5

1 ответ

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;

Ещё вопросы

Сообщество Overcoder
Наверх
Меню