Laravel Eloquent: как динамически добавлять новую «строку» в коллекцию данных - PullRequest
0 голосов
/ 01 июля 2019

Сценарий:

  1. У меня есть календарь, созданный с помощью FullCalendar v4.
  2. И я использую RRULE для генерации повторяющихся событий каждого события, хранящегося в базе данных.

Цель:

  1. У меня есть календарь, созданный с помощью FullCalendar v4.
  2. Некоторым конкретным событиям нужны «дочерние события», генерируемые динамически.
  3. Например, если поле disparo_quant больше 1, то должно быть количество «дочерних событий», распределенных до даты «до». Например, dtstart == 2019-07-01, disparo_quant == 4 и until == 2019-07-30, поэтому мне нужно больше 4 «дочерних событий», между dtstart и until.

Очевидно, что очень легко достичь этой цели «дочерних событий» во время «создания» «родительского события», так как он мог бы использовать таблицу, связанную с таблицей событий, и вставить в эту таблицу «дочерний» объект. "дочерние события".

Мне нужно (я полагаю), как я могу динамически вставлять новые строки, эти дочерние события, используя в качестве ссылки для вычисления следующие 3 поля: dtstart, until и disparo_quant.

Я думал о чем-то вроде этого:

  1. Я выполняю обычный запрос.
  2. И я бы использовал Collections Map()
$originalCalendar = DocumentoCalendario::get()

$modifiedCalendar = $originalCalendar->map(function ($item)
{
    if ( count($item->disparo_quant) > 1 )
    {
        "??????"
    }
});

Проблема начинается именно в этой строке «??????». Как вставить новые строки в этой коллекции? Как будто это существующие записи в таблице.

Это хорошая идея или есть лучший способ получить "без" таблицы для хранения дочерних событий?

Названия столбцов:

[
"id",
"groupId"
"title",
"dtstart",
"until",
"freq",
"interval",
"disparo_quant",
],
...