我正在尝试吸引用户预订会议。我要确认,还是不确认。
$sessions = DB::table('online_counselling')->where('user_id', Auth::id())
->where('is_confirmed', '0')
->orWhere('is_confirmed', '1')
->first();
在我进入orWhere方法之前,它工作正常。它将完全更改用户ID,以获取确认会话的第一个用户。它完全不考虑经过身份验证的用户。
任何想法
答案 0 :(得分:1)
Where
始终在查询中创建新的AND WHERE
。当您使用orWhere
时,它会创建一个全新的WHERE
零件。
您必须选择;结合is_confirmed
部分:
$sessions = DB::table('online_counselling')->where('user_id', Auth::id())
->whereIn('is_confirmed', ['0', '1'])
->first();
或将Auth::id()
与其他where
组合在一起:
$sessions = DB::table('online_counselling')->where([
['user_id', Auth::id()],
['is_confirmed', '0']
])->orWhere([
['user_id', Auth::id()],
['is_confirmed', '1']
])->first();
要考虑的一件事:如果is_confirmed
是0
还是1
都没关系,为什么还要查询呢?您不能只用online_counselling
来检索where('user_id', Auth::id())
吗?