好,所以我正在使用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分页进行操作,否则可能会给前端带来麻烦?
答案 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行...。(但它也可以取决于其他参数)。
您是否更清楚?