雄辩的查询条件和条件,或条件和条件不同

时间:2019-05-07 13:12:41

标签: laravel orm eloquent

我需要创建一个查询来搜索(名字= foo和姓氏= bar)或(名字= bar以及姓氏= foo)。要真正正常工作,这真令人沮丧。我感谢任何建议。

$this->_records->where('first_name','LIKE', $params[0])->where('last_name', 'LIKE', $params[1])->orWhere('first_name','LIKE', $params[1])->where('last_name', 'LIKE', $params[0]);

2 个答案:

答案 0 :(得分:1)

您可以像这样将它们分组在一起:

$this
    ->_records()
    ->where(function ($query) use ($params) {
        return $query->where('first_name', 'LIKE', $params[0])
            ->where('last_name', 'LIKE', $params[1]);
    })
    ->orWhere(function ($query) use ($params) {
        return $query->where('first_name', 'LIKE', $params[1])
            ->where('last_name', 'LIKE', $params[0]);
    })
    ->get();

答案 1 :(得分:0)

您可以尝试使用此查询来搜索多个字段。

$this->_records
     ->whereRaw("concat(first_name, ' ', last_name) like '%".$params."%' ")
     ->orWhereRaw("concat(last_name, ' ', first_name) like '%".$params."%' ")
     ->get();