как отфильтровать паутину в laravel api с помощью vuejs - PullRequest
0 голосов
/ 05 мая 2019

Хорошо, поэтому я использую пагинацию 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 Ответ

1 голос
/ 05 мая 2019

При разбиении на страницы с помощью 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, который получает все строки, а затем динамически фильтрует лицевую сторону (например, с помощью фильтра js). Допустим, около 100 строк .... (но это также может зависеть от других параметров).

Вам это понятнее?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...