4 回答

TA貢獻(xiàn)1842條經(jīng)驗(yàn) 獲得超13個贊
你可以這樣做
Model::where('a', '1')
->where('b', '2')
->where(function ($q) {
$q->where('c', '3')->orWhere('c', '4');
})
->where(function ($q) {
$q->where('d', '5')->orWhere('d', '5');
})->get();

TA貢獻(xiàn)2051條經(jīng)驗(yàn) 獲得超10個贊
如果我收到您的問題,那么這張收據(jù)適合您:
$result = DB::table('table')
->where('a', 1)
->where('b', 2)
->where(function($query) {
$query->where('c', 3)
->orWhere('c', 4)
})
->where(function($query) {
$query->where('d', 5)
->orWhere('d', 6)
->get();

TA貢獻(xiàn)1801條經(jīng)驗(yàn) 獲得超16個贊
像這樣的事情應(yīng)該可以解決問題:
Model::where([
['a', '=', 1],
['b', '=', 2],
[['c', '=', 3], 'OR', ['c', '=', 4]],
[['d', '=', 5], 'OR', ['d', '=', 6]]
]);

TA貢獻(xiàn)1811條經(jīng)驗(yàn) 獲得超6個贊
既然你已經(jīng)改進(jìn)了你的問題。以下是實(shí)現(xiàn)這一目標(biāo)的方法。
沒有測試過。像這樣的事情怎么樣?
$ands = [['a', '=', 1], ['b', '=', 2], ...];
$query = Model::query();
foreach($and as $and) {
$query = $query->where($and);
}
if($cond1) $ors['c'] = [3, 4, ...];
if($cond2) $ors['d'] = [5, 6, ...];
if($cond3) $ors['e'] = [7, 8, ...];
...
foreach($ors as $key => $or) {
$query = $query->where(function($q) use ($key, $or) {
$q->whereIn($key,$or);
});
}
$query->get();
- 4 回答
- 0 關(guān)注
- 350 瀏覽
添加回答
舉報