Пагинация Laravel с параметром URL - PullRequest
1 голос
/ 03 июня 2019

У меня есть приложение Laravel.Доступ к одной из страниц можно получить по следующему URL-адресу

http://localhost:8000/items/gallery?item_type=glasses

Поскольку количество отображаемых элементов может быть весьма существенным, я использую нумерацию страниц,У меня есть следующий код на мой взгляд:

@foreach($media as $media_item)
   <div class="col-md-3">
       <div class="card">
          <img class="card-img-top" src="{{ asset('storage/'.$media_item->id .'/'. $media_item->file_name)  }}" ">
       </div>
   </div>
@endforeach
{{ $media->links() }}

и в контроллере, который я использую:

$media = Media::paginate(5);

Кнопки нумерации страниц показаны и работают для 1-го.Затем, когда я нажимаю на второй (или третий, или четвертый ...), я получаю следующее сообщение об ошибке:

Метод Illuminate \ Database \ Eloquent \ Collection :: links не существует.

Я вижу, что ссылка пытается достичь:

http://localhost:8000/beeritems/gallery?page=2

, тогда как мне нужно:

http://localhost:8000/beeritems/gallery?item_type=glasses&page=2

В Laravel как я могу изменить метод links (), чтобы включить деталь после знака вопроса?

Ответы [ 2 ]

1 голос
/ 03 июня 2019

Вы можете использовать базовые URL laravel вместо получения изображений галереи с параметрами получения URL. как то так:

определить маршрут как этот

/items/gallery/{types}

затем используйте его как

http://localhost:8000/items/gallery/glasses

в этом случае вы больше не получите эту ошибку

1 голос
/ 03 июня 2019

Вы должны использовать ->appends() методы

$media = Media::paginate(5);
$media->appends($request->all());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...