Laravel 在 where 子句中加入“and”和“or”

sai*_*ful 2 php laravel eloquent

我怎样才能写一个像这个 SQL 的 Laravel 5 Eloquent 查询?

where ( (table1.fname like %xxxxx% )
    OR (table1.lname like %xxxxx%) )
    AND table1.is_active != 0
Run Code Online (Sandbox Code Playgroud)

我已经试过了

->where('users.is_active', '!=', 2)
    ->where('users.name', 'like' , '%'. $search .'%')
    ->orWhere('users.lname', 'like' , '%'. $search .'%')
    ->orWhere('users.email', 'like' , '%'. $search .'%') ->get();
Run Code Online (Sandbox Code Playgroud)

Des*_*901 5

看一看在高级加入条款Laravel文档

DB::table('users')
    ->join('contacts', function ($join) {
        $join->on('users.id', '=', 'contacts.user_id')
             ->where('contacts.user_id', '>', 5);
    })
    ->get();
Run Code Online (Sandbox Code Playgroud)

加入

编辑

我想我误解了这个问题。要执行嵌套 wheres,您可以执行以下操作:

\DB::table('table1')->...->where(function($query) {
    $query->where('table1.fname', 'like', '%xxxxx$')->orWhere('table1.lname', 'like', '%xxxx%);
})->where('table1.is_active', '!=', 0);
Run Code Online (Sandbox Code Playgroud)