如何使用vuejs过滤laravel api分页

时间:2019-05-05 06:36:25

标签: reactjs laravel vue.js

好,所以我正在使用Laravel的分页获取api资源,它为我提供了如下结构:

{
   current_page: 1,
   data: [
      {
         some data
      },
      {
         somedata
      }
   ],
   first_page_url: "http://localhost:8000/api/accommodation?page=1",
   from: 1,
   last_page: 3,
   last_page_url: "http://localhost:8000/api/accommodation?page=3",
   next_page_url: "http://localhost:8000/api/accommodation?page=2",
   path: "http://localhost:8000/api/accommodation",
   per_page: 2,
   prev_page_url: null,
   to: 2,
   total: 5
}

现在,如果我想为我的api编写一个过滤器以在其中搜索某些内容,并且我想在所有api中进行搜索,而不仅仅是第一页该怎么做?我应该将所有内容存储在vuejs中还是要进行响应然后进行过滤,或者有什么方法可以读取所有数据,甚至不应该使用laravel分页进行操作,否则可能会给前端带来麻烦?

1 个答案:

答案 0 :(得分:1)

使用laravel分页时,它将采用请求中存在的所有参数。因此,您必须提出这种要求:

http://localhost:8000/api/accommodation?page=1&filter1=blabla&filter2=blabla

然后您的应用程序将收到如下结果:

    {
   current_page: 1,
   data: [
      {
         some data
      },
      {
         somedata
      }
   ],
   first_page_url: "http://localhost:8000/api/accommodation?page=1&filter1=blabla&filter2=blabla",
   from: 1,
   last_page: 3,
   last_page_url: "http://localhost:8000/api/accommodation?page=3&filter1=blabla&filter2=blabla",
   next_page_url: "http://localhost:8000/api/accommodation?page=2&filter1=blabla&filter2=babla",
   path: "http://localhost:8000/api/accommodation",
   per_page: 2,
   prev_page_url: null,
   to: 2,
   total: 5
}

但是,我认为,如果数据库中有很多行,则必须进行分页。如果不是这种情况,我希望对api进行唯一调用,该api获取所有行,然后在前端进行动态过滤(例如,使用js过滤器)。假设大约有100行...。(但它也可以取决于其他参数)。

您是否更清楚?