Попытка получить переменную нумерацию страниц, чтобы показать мне 3 различных типа нумерации страниц - PullRequest
0 голосов
/ 08 февраля 2019

Вот мой индекс:

<div class="page-sizer">
                <a class="page numbers" href="{{$references->pagination(10)}}">10</a>
                <a class="page numbers" href="{{$references->pagination(30)}}">30</a>
                <a class="page numbers" href="{{$references->pagination(100)}}">100</a>
                <button  href="qweqwe.qweqwe" class="btn btn-info float-right>112e1e1e1e"></button>
                </div>

Мой AdminreferenceController:

 public function index()
    {
        $references = Reference::orderBy('priority', 'desc')->orderBy('id', 'desc')->paginate(50);

        return view('admin.reference.index', ['references' => $references]);

    }

и мой Paginator:

public function __construct($items, $total, $perPage, $currentPage = null, array $options = [])
    {
        foreach ($options as $key => $value) {
            $this->{$key} = $value;
        }

        $this->total = $total;
        $this->perPage = $perPage;
        $this->lastPage = max((int) ceil($total / $perPage), 1);
        $this->path = $this->path !== '/' ? rtrim($this->path, '/') : $this->path;
        $this->currentPage = $this->setCurrentPage($currentPage, $this->pageName);
        $this->items = $items instanceof Collection ? $items : Collection::make($items);
    }

.В настоящее время я получаю сообщение об ошибке Метод Illuminate \ Database \ Eloquent \ Collection :: pagination не существует.Я хочу иметь 3 кнопки, которые показывают 3 различных вида нумерации страниц, как в stackoverflow, в строке поиска внизу.

Ответы [ 3 ]

0 голосов
/ 08 февраля 2019

Я не мог найти время, чтобы решить это.Но я обнаружил, что вы вызываете пагинацию () вместо пагинации.Смотрите мое предложение

<div class="page-sizer">
            <a class="page numbers" href="{{$references->paginate(10)}}">10</a>
            <a class="page numbers" href="{{$references->paginate(30)}}">30</a>
            <a class="page numbers" href="{{$references->paginate(100)}}">100</a>
            <button  href="qweqwe.qweqwe" class="btn btn-info float-right>112e1e1e1e"></button>
            </div>

Здесь я удалил пагинацию из index () и вернул коллекцию.

 public function index()
{
    $references = Reference::orderBy('priority', 'desc')->orderBy('id', 'desc');

    return view('admin.reference.index', ['references' => $references]);

}

Надеюсь, это поможет вам.

0 голосов
/ 08 февраля 2019

Вы вызываете разбиение на страницы в коллекции, попробуйте вот так

Сначала вам нужно включить класс DB перед замедлением класса

use Illuminate\Support\Facades\DB;

Затем измените запрос следующим образом

$references = DB::table('reference')->orderBy('priority', 'desc')->orderBy('id', 'desc')->paginate(5o);
    return view('admin.reference.index', ['references' => $references]);

По вашему мнению, вам нужен такой доступ

{{  $references->links() }}

https://laravel.com/docs/5.7/pagination

0 голосов
/ 08 февраля 2019

В настоящее время я полностью изменил нумерацию страниц.я написал URL с

/x/y/perpage/10,
/x/y/perpage/30,
/x/y/perpage/100,

я создал для него новый маршрут

route::('/x/perpage/{count})'

и изменил мой AdminReferenceController на

public function index($perpage = false)
    {
        if(!$perpage) {
            $perpage = 10;
        }
        $references = Reference::orderBy('priority', 'desc')->orderBy('id', 'desc')->paginate($perpage);
...