Метод forPage() у коллекции, делит коллекцию на равные части, а остаток переносит на отдельную страницу?
forPage("номер страницы", "количество элементов на странице") forPage method returns a NEW collection PHP: $collection = collect([1, 2, 3, 4, 5, 6, 7, 8, 9]); $chunk = $collection->forPage(2, 3); $chunk->all(); // [4, 5, 6]
@Dimon2x это просто функция если нужно получить другую страницу запускаешь ee еще раз с другими параметрами и т.д PHP: public function forPage($page, $perPage) { $offset = max(0, ($page - 1) * $perPage); return $this->slice($offset, $perPage); } public function slice($offset, $length = null) { return new static(array_slice($this->items, $offset, $length, true)); } http://www.php.net/array_slice
Она возвращает срез массива, соответствующего странице, точка. Остальное никуда не переносит. forPage они назвали зря, но тут ключевое слово for, для. Т.е. "вернуть срез для страницы". И освой Ctrl+click в PhpStorm (и в NetBeans такая штука тоже есть). Кликаешь на функцию, и идёшь в исходник. Там много интересного находишь.
Не понимаю, почему не сохраняется результат в массив? Само содержимое коллекции выводит, а массив $categoryId остаётся пустым. PHP: $categoryId = []; $collection = collect($request->input('choose-category')); $collection = $collection->chunk(1); $collection->each(function ($item, $key) { dump($categoryId[] = [ 'image_id' => 33, 'category_id' => $key ]) ; }); dump($categoryId); dd($collection);
@Dimon2x, потому что ты замыканиями не умеешь пользоваться. В php внешние переменные в замыкания передаются инструкцией use (гугли), а если нужно внешнюю переменную менять, но ещё и ссылку на переменную надо передать в use.