带有URL参数的Laravel分页

时间:2019-06-03 17:59:22

标签: laravel

我有一个Laravel应用程序。可以通过以下网址访问其中一页:

  

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);

已显示分页按钮,并且该按钮可用于第一个按钮。然后,当我单击第二个(或第三个或第四个...)时,出现以下错误消息:

  

方法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 个答案:

答案 0 :(得分:1)

您必须使用->appends()方法

$media = Media::paginate(5);
$media->appends($request->all());

答案 1 :(得分:1)

您可以使用laravel基本URL来代替使用URL get参数获取画廊图像。 像这样的东西:

定义这样的路线

/items/gallery/{types}

然后像

一样使用它
http://localhost:8000/items/gallery/glasses

在这种情况下,您不会再收到该错误