雄辩的-检查一个属性有两种可能性

时间:2018-06-29 09:59:00

标签: laravel eloquent

我正在尝试吸引用户预订会议。我要确认,还是不确认。

$sessions = DB::table('online_counselling')->where('user_id', Auth::id())
                                                     ->where('is_confirmed', '0')
                                                     ->orWhere('is_confirmed', '1')
                                                     ->first();

在我进入orWhere方法之前,它工作正常。它将完全更改用户ID,以获取确认会话的第一个用户。它完全不考虑经过身份验证的用户。

任何想法

1 个答案:

答案 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_confirmed0还是1都没关系,为什么还要查询呢?您不能只用online_counselling来检索where('user_id', Auth::id())吗?