Итак, я собираю данные из внешнего API в Laravel 5.7 и мне нужно собрать данные из 3 методов в одну строку, используя Eloquent (я не делаю эти правила). Эти функции в настоящее время возвращают коллекции, где мне нужно объединить их в одну коллекцию, а затем поместить в базу данных. У меня есть общие параметры, являющиеся следующими для всех коллекций:
[uniqueID, date]
Это потому, что я получу несколько одинаковых uniqueID, но с разными датами, поэтому уникальность - это комбинация date + uniqueID.
Вот пример псевдокода того, чего я хочу реально достичь:
public function getParamSet1()
{
// some code gets the params to put into this collection
// this is a fairly big pull and has a few nested loops to
// put values into the below collection.
$aggregateParamSet1 = collect(['param1', 'uniqueID', 'date', ]);
return aggregateParamSet1;
}
public function getParamSet2()
{
// some code gets the params to put into this collection
// this is a fairly big pull and has a few nested loops to
// put values into the below collection.
$aggregateParamSet2 = collect(['param2', 'uniqueID', 'date', ]);
return $aggregateParamSet2;
}
public function getParamSet3()
{
// some code gets the params to put into this collection
// this is a fairly big pull and has a few nested loops to
// put values into the below collection.
$aggregateParamSet3 = collect(['param3', 'uniqueID', 'date', ]);
return $aggregateParamSet3;
}
public function writeToDB()
{
$collection1 = getParamSet1();
$collection2 = getParamSet2();
$collection3 = getParamSet3();
// merge these collections then update/create the records with
// Eloquent
}
То, что я не слишком знаком с Laravel, заставляет меня думать, что у меня должно быть отдельное поле в коллекциях, которое объединяет дату + идентификатор, чтобы создать действительно уникальный идентификатор и объединить его на основе этого ключевого слова, если я правильно понимаю документы Коллекции, однако я думаете, должен быть лучший, более эффективный способ сделать это? Был бы признателен за проверку работоспособности с некоторыми способами управления 3 вызовами с разными возвращаемыми данными (с общим идентификатором и датой), которые необходимо объединить в одну строку.