Условие Laravel в URI

#php #laravel #uri

#php #ларавель #uri

Вопрос:

Я планирую реализовать api для базы данных с использованием Laravel, и я надеюсь иметь функцию поиска, использующую URI, например

www.exaample.com/WaferSearch ?{строка поиска}

Кажется, очень легко реализовать строку поиска, например

параметр 1 = 4

При этом будет запрошен список пластин (это то, о чем идет речь в базе данных), где param1 равно 4

Документация, кажется, очень четко описывает, как я могу превратить любой вопрос, подобный этому, в SQL.

Тем не менее, я хочу иметь строку поиска, например

парам1 > 4

Я также был бы рад выразить строку поиска следующим образом

param1_GreaterThan =4

и я вижу, как я мог бы написать некоторый код для анализа строки поиска, чтобы определить, что требуется. Однако я чувствую, что я бы решил проблему, которая, должно быть, была решена много раз раньше.

Есть ли хорошо зарекомендовавший себя способ сделать это?

Грэм

Ответ №1:

Существует множество способов реализовать что-то подобное, но один способ приходит на ум как наиболее расширяемый. Используйте две переменные в запросе.

  • Больше , чем http://myapi.com/wafersearch?p1=4amp;op=gt
  • Меньше, чем http://myapi.com/wafersearch?p1=4amp;op=lt
  • Равный http://myapi.com/wafersearch?p1=4amp;op=eq

В качестве альтернативы вы можете использовать перезаписи для передачи переменных непосредственно в метод route / controller.

  • Больше , чем http://myapi.com/wafersearch/gt/4
  • Меньше, чем http://myapi.com/wafersearch/lt/4
  • Равный http://myapi.com/wafersearch/eq/4

Комментарии:

1. Что бы вы порекомендовали сделать ?p1=4amp;op1=gt для поддержки нескольких параметров?

2. Да, это легко может быть ?p1=4amp;p1op=gtamp;p2=2amp;p2op=lt так, что у вас есть только один маршрут, обрабатывающий все wafersearch вызовы с несколькими параметрами и разными операторами.

3. Большое спасибо за этот совет. Я думаю, что мне это могло бы пригодиться. Единственное, что меня беспокоит, это то, что это может сделать строку поиска довольно длинной, если бы было большое количество параметров, которые в соответствии с этой схемой имели бы в два раза больше элементов в строке поиска. Я не совсем уверен, сколько параметров будет использоваться на этом этапе, но я думаю, что я читал, что существует ограничение для операций GET.