Laravel 5雄辩的地方,有多个或在条款中

时间:2019-06-07 11:36:13

标签: php laravel eloquent laravel-5.2

我是Laravel的新手,我尝试从具有多个where和or子句的表中获取结果。

from tkinter import filedialog
file_name = filedialog.askopenfilename(filetypes=[("SEGY files","*.sgy"),("All files","*.*")])
print(file_name)

我使用多个Cases::select() ->where('accepting_id', '=', '1') ->where('status', '=', 'active') ->orWhere("status", '=', 'closed') ->orWhere("status", '=', 'canceled') ->orderBy('id', 'DESC') ->get();

来获取不正确的数据

3 个答案:

答案 0 :(得分:4)

$user = Cases::select(`cols`)
              ->where('accepting_id', '=', '1')
              ->whereIn('status',  ['active', 'closed', 'canceled'])
              ->orderBy('id', 'DESC')
              ->get();

dd($user);

尝试一下

答案 1 :(得分:3)

您需要将status where子句添加到where闭包中:

Cases::select()
    ->where('accepting_id', '=', '1')
    ->where(function($query) {
        $query->where('status', '=', 'active')
            ->orWhere("status", '=', 'closed')
            ->orWhere("status", '=', 'canceled');
    })
    ->orderBy('id', 'DESC')
    ->get();

答案 2 :(得分:1)

使用orWhere()代替使用whereIn()

Cases::select(`cols`)
    ->where('accepting_id', '=', '1')
    ->whereIn('status',  ['active', 'closed', 'canceled'])
    ->orderBy('id', 'DESC')
    ->get();

如果您想对一些查询进行分组

Cases::select(`cols`)
    ->where('accepting_id', '=', '1')
    ->where(function ($q) {
        $q->where(`condition1`)
            ->orWhere(`condition1`);
    })
    ->orderBy('id', 'DESC')
    ->get();