laravel 4 - добавить в коллекцию с разбивкой на страницы

Я хочу вручную добавлять элементы в коллекцию - отлично работает с коллекцией, возвращаемой из get(), но терпит неудачу, когда коллекция возвращается из paginate(), например

$rows = $query->get();
$rows->add(new Model());

работает нормально

$rows = $query->paginate(10);
$rows->add(new Model());

выдайте эту ошибку: Paginator.php 502: call_user_func_array() ожидает, что параметр 1 будет допустимым обратным вызовом, класс «Illuminate\Support\Collection» не имеет метода «добавить»

Я предполагаю, что paginate возвращает объект paginator, а не красноречивую коллекцию, просто интересно, есть ли способ добавить к этому?

Спасибо :-)


person Leon    schedule 25.06.2014    source источник


Ответы (1)


Ларавел 5:

$rows->getCollection()->add(new Model());

Ларавел 4:

add — это метод Eloquent\Collection, и вы не можете использовать его на Paginator, который зависит от Support\Collection.

Используйте этот обходной путь, если вам нужно добавить элементы:

$items = $rows->getItems();
$items[] = new Model();
$rows->setItems($items);
person Jarek Tkaczyk    schedule 25.06.2014
comment
Как мы можем сделать это с Laravel 5? - person zot24; 28.05.2015