从url获取两个字段并将其转换为变量以查询搜索

时间:2019-06-13 18:25:59

标签: php regex symfony get symfony-http-foundation

我正在尝试在api中获取两个字段,以便它基于该字段进行查询。例子。

api/evenSession/123123123/eventSession?token=1234656&filter= chris moreno

我的控制器按名字或姓氏搜索。但是我想创建一个端点,如果它通过了“ chris moreno”,它将查询数据库

这是我的$ filter代码

if(preg_match_all('/^[A-Z]*[a-z]*(-|\s)[A-Z]*[a-z]*$/', $filter)){
       $searchFields = [
           'a.lastName',
           'a.firstName'
       ];

id希望能够在我的工作人员中同时捕获两个字段(克里斯和莫雷诺),以便我可以将其传递给我的查询,以便它可以检查使用姓氏和名字签入的人。 (缩小搜索范围)

1 个答案:

答案 0 :(得分:1)

在这里,我们将有三个捕获组,例如,如果我们的输入如列出的那样,我们将以以下表达式开头:

b <- structure(list(Var1 = structure(c(3L, 2L, 1L, 4L, 5L), .Label = c("[-0.200,0.301)", 
"[-0.793,-0.200)", "[-1.616,-0.793)", "[0.301,0.937)", "[0.937,3.253]"
), class = "factor"), Freq = c(10L, 10L, 10L, 10L, 10L)), .Names = c("Var1", 
"Freq"), class = "data.frame", row.names = c(NA, -5L))

Demo 1

在这里,我们在此捕获组中的令牌值:

token=(.*?)&filter=\s*([\w]+)\s+([\w]+)

和我们在这两个单独的捕获组中的名称:

(.*?)

如果我们有奥尼尔(O'Neal)之类的名字,则可以修改最后两个组,它们可能不属于([\w]+) char类。例如,我们可以允许任何字符:

[A-Za-z]

Demo 2

测试

token=(.*?)&filter=\s*(.+?)\s+(.+) 

Demo 3