Laravel orWhere 但总是状态为 1

$teachers = Teacher::where('id', 'LIKE', '%' . $q . '%')
                ->orWhere('name', 'LIKE', '%' . $q . '%')
                ->orWhere('lastname', 'LIKE', '%' . $q . '%')
                ->orWhere('father', 'LIKE', '%' . $q . '%')
                ->orWhere('email', 'LIKE', '%' . $q . '%')
                ->orWhere('phone', 'LIKE', '%' . $q . '%')
                ->orWhere('job_title', 'LIKE', '%' . $q . '%')
                ->where('status', 1)
                ->latest()
                ->paginate(50);

我想获得 orWhere-s,状态始终为 1。我该怎么做?


慕的地6264312
浏览 116回答 2
2回答

MMTTMM

您可以添加一个where子句并可以添加每个条件而没有状态条件,如下所示:$teachers = Teacher::where(function($query) use ($q){                 $query->where('id', 'LIKE', '%' . $q . '%')                       ->orWhere('name', 'LIKE', '%' . $q . '%')                       ->orWhere('lastname', 'LIKE', '%' . $q . '%')                       ->orWhere('father', 'LIKE', '%' . $q . '%')                       ->orWhere('email', 'LIKE', '%' . $q . '%')                       ->orWhere('phone', 'LIKE', '%' . $q . '%')                       ->orWhere('job_title', 'LIKE', '%' . $q . '%');             })             ->where('status', 1)             ->latest()             ->paginate(50);

胡子哥哥

你可以这样做$teachers = Teacher::where('id', 'LIKE', '%' . $q . '%')             ->where('status', 1)             ->orWhere(function($query) {                         $query->orWhere('name', 'LIKE', '%' . $q . '%')                   ->orWhere('lastname', 'LIKE', '%' . $q . '%')                   ->orWhere('father', 'LIKE', '%' . $q . '%')                   ->orWhere('email', 'LIKE', '%' . $q . '%')                   ->orWhere('phone', 'LIKE', '%' . $q . '%')                   ->orWhere('job_title', 'LIKE', '%' . $q . '%')              })             ->latest()             ->paginate(50);
打开App,查看更多内容
随时随地看视频慕课网APP