Php 如何使一个带有Laravel元素的多where子句变得通顺?

Php 如何使一个带有Laravel元素的多where子句变得通顺?,php,laravel,eloquent,Php,Laravel,Eloquent,这个查询有什么问题 它忽略where status=3.. 并返回所有重新记录,即使状态为3 提前感谢。您应该将或where()分组并在此处结束: $data = Retour::where('status','=',3)->where('rma','LIKE', '%' .$searchquery.'%')->OrWhere('naam','LIKE', '%' .$searchquery.'%')->OrWhere('framenummer','LIKE', '%' .$s

这个查询有什么问题

它忽略where status=3..
并返回所有重新记录,即使状态为3


提前感谢。

您应该将
或where()分组并在此处结束:

$data = Retour::where('status','=',3)->where('rma','LIKE', '%' .$searchquery.'%')->OrWhere('naam','LIKE', '%' .$searchquery.'%')->OrWhere('framenummer','LIKE', '%' .$searchquery.'%')->get();

在这种情况下使用
范围
。看

还有一件事

它不是
或where
它是
或where

$data = Retour::where('status', 3)
    ->where(function($q) use($searchquery) {
        $q->where('rma', 'like', '%'.$searchquery.'%')
          ->orWhere('naam', 'like', '%'.$searchquery.'%')
          ->orWhere('framenummer', 'like', '%'.$searchquery.'%');
    })->get();
public function scopeSearch($query, $searchQuery)
{
        return $query->where('status',3)
                     ->where('rma','LIKE', "%$searchQuery%")
                     ->orWhere('naam','LIKE', "%$searchQuery%")
                     ->orWhere('framenummer','LIKE', "%$searchQuery%");
}