Laravel 5 如何创建查询以在Laravel中搜索?

Laravel 5 如何创建查询以在Laravel中搜索?,laravel-5,search,Laravel 5,Search,我使用的是Laravel5.2,我正在尝试创建搜索功能,我试图通过多个列进行查询,但没有得到预期的结果 我正在使用此查询: $wachat = Table::where('key', '=', $d1) ->orWhere('message', 'LIKE', "%{$searchByContact}%") ->orWhere('abc', 'LIKE', "%{$searchByContact}%") ->orWhere('xyz', 'LI

我使用的是Laravel5.2,我正在尝试创建搜索功能,我试图通过多个列进行查询,但没有得到预期的结果

我正在使用此查询:

    $wachat = Table::where('key', '=', $d1) 
    ->orWhere('message', 'LIKE', "%{$searchByContact}%")
    ->orWhere('abc', 'LIKE', "%{$searchByContact}%")
    ->orWhere('xyz', 'LIKE', "%{$searchByContact}%")
    ->orderBy('id', 'DESC')->paginate(20);

我得到的结果,但在这里我想过滤的关键是任何东西。但使用ABOVE查询,我会从“所有关键点都在那里”得到一个结果。无论如何,我可以创建一个查询,然后在关键点所在的位置显示结果

问题是您正在使用
->orWhere()
方法,这将取消以前的调用搜索条件

查询的第二部分应使用
->where()
闭包:

$wachat = Table::where('key', '=', $d1) 
    ->where(function($query) use ($searchByContact) {
        $query->where('message', 'LIKE', "%{$searchByContact}%")
            ->orWhere('abc', 'LIKE', "%{$searchByContact}%")
            ->orWhere('xyz', 'LIKE', "%{$searchByContact}%");
    })
    ->orderBy('id', 'DESC')
    ->paginate(20);

你不能删除第一个
where
方法吗?我需要搜索并给我一个key为$d1的结果搜索很好,但给我一个key匹配的结果。在这种情况下,我只是尝试使用
:where('key',$d1)
:where('key',$d1)没有过滤我正在为你写答案谢谢你的答案