] * @since [v4.0.16] * @return \Illuminate\Http\Response */ class SelectlistTransformer { public function transformSelectlist (LengthAwarePaginator $select_items) { // Loop through the paginated collection to set the array values foreach ($select_items as $select_item) { $items_array[]= [ 'id' => (int) $select_item->id, 'text' => ($select_item->use_text) ? e($select_item->use_text) : e($select_item->name), 'image' => ($select_item->use_image) ? e($select_item->use_image) : null, ]; } // This is weird and awful, but the only way I can find to allow the user to // clear the selection - @snipe if (count($items_array) > 0) { array_unshift($items_array, ['id' =>'', 'text'=> trans('general.clear_selection')]); } $results = [ 'items' => $items_array, 'pagination' => [ 'more' => ($select_items->currentPage() >= $select_items->lastPage()) ? false : true, 'per_page' => $select_items->perPage() ], 'total_count' => $select_items->total(), 'page' => $select_items->currentPage(), 'page_count' => $select_items->lastPage() ]; return $results; } }