今天在做項目的時候發(fā)現(xiàn)了一個bug斋陪,具體就是數(shù)據(jù)庫語句
user_id = ? or user_id = '' and oid = ?
當(dāng)用戶ID為具體值或者為空的都要篩選進行,但是發(fā)現(xiàn)要想符合效果必須改成
(user_id=? or user_id='') and oid = ?
原語句對應(yīng)的laravel語句是
$select->where('user_id', '=', $user_id);
$select->orwhere('user_id', '=', '');
$select->where('oid', '=', $oid);
于是改成
$select -> where(function($query) use ($user_id) {
$query -> where('user_id', '=', $user_id);
$query -> orWhere('user_id', '=', '');
});
$select->where('oid', '=', $oid);