count(); return self::paginator($results->forPage($page, $pageSize), $total, $pageSize, $page, [ 'path' => Paginator::resolveCurrentPath(), 'pageName' => 'page', ]); } /** * Create a new length-aware paginator instance. */ protected static function paginator( Collection $items, int $total, int $perPage, int $currentPage, array $options ): LengthAwarePaginator { return Container::getInstance()->makeWith(LengthAwarePaginator::class, [ 'items' => $items, 'total' => $total, 'perPage' => $perPage, 'currentPage' => $currentPage, 'options' => $options, ]); } /** * Get an array of views for each recipe models given. */ public static function getViewsFromPaginateModels( LengthAwarePaginator $models, string $path, string $key ): array { return $models->through(function ($model) use ($path, $key) { return view($path, [$key => $model])->render(); })->toArray(); } /** * Get an array of views for each item in collection given. */ public static function getViewsFromCollection(Collection $collection, string $path, string $key): array { return $collection->map(function ($item) use ($path, $key) { return view($path, [$key => $item])->render(); })->toArray(); } public static function mapSlidesToFields(array $fields): array { return collect($fields) ->filter(fn ($field, $key) => str_starts_with($key, 'slider_image_')) ->filter(fn ($field) => ! empty($field['value'])) ->sortKeys() ->map(fn ($field) => [ 'image' => [ 'path' => $field['value'], 'title' => $field['title'] ?? '', 'alt' => $field['alt'] ?? '', ], ]) ->values() ->toArray(); } }