добавить строку в DB:: результат в Laravel

#php #laravel

#php #laravel

Вопрос:

У меня есть таблица BirthDeath , подобная приведенной ниже:

 id birthmonth deathmonth
1  1            3
2  4            4
3  2            5
  

Запрос предназначен для получения месяца рождения или смерти,

 $events = DB::table('BirthDeath')->where('birthmonth',4)->orWhere('deathmonth',4)->paginate(10);
  

В результате этого запроса получается 1 строка, однако мне нужно, чтобы эта строка дублировалась (потому что месяц рождения и месяц смерти одинаковы), и в представлении я намерен показать их отдельно. Мое текущее решение — дублировать результаты, если месяц рождения и месяц смерти совпадают, но это не работает. Вот код

 events2 = $events;
    foreach ($events as $event) {
            if ($event->birthmonth == $CurrentMonth || $event->deathmonth == $CurrentMonth) {
                $events2->appends($event); <-------- this is the cause of the error
            }
        }
  

Комментарии:

1. вы ищете add метод? также назначение $events2 = $events; не создает новую коллекцию, обе эти переменные ссылаются на одну и ту же коллекцию

2. да, как я могу добавить?

3. с add помощью метода или push , но он будет добавлен в конец элементов

4. это именно то, что мне нужно. можете ли вы добавить ответ?

Ответ №1:

Если вы хотите добавить элементы в коллекцию, вы можете использовать метод add or push . add принимает один элемент и push может принимать много (переменное количество аргументов):

 $events->add($event);
// or
$events->push($event);