#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);