laravel - 雄辩的 - 检查一个属性的两种可能性
问题描述
我正在尝试让用户预订会话。我想要它,如果它被确认,或者没有被确认。
$sessions = DB::table('online_counselling')->where('user_id', Auth::id())
->where('is_confirmed', '0')
->orWhere('is_confirmed', '1')
->first();
在我使用 orWhere 方法之前它工作正常。它完全更改用户 ID 以获取会话被确认的第一个用户。它完全无视经过身份验证的用户。
任何想法
解决方案
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
要考虑的一件事:如果is 0
or无关紧要1
,为什么要查询它?你不能只用 检索online_counselling
吗where('user_id', Auth::id())
?
推荐阅读
- php - mysql左外连接排名
- reactjs - 如何在本机反应中将数组数据插入数据库?
- amazon-web-services - 如何从 CloudFormation 模板中访问标签?
- javascript - S3.putObject().on('httpUploadProgress', callback) 中的回调没有正确更新 React 状态数组
- reactjs - 我应该把一些操作放在功能组件的哪里
- java - 将数据提供者与 Excel 数据表一起使用
- node.js - 在 forEach (Node/Express) 中最小化 DOM 元素
- python - Pandas - 将列值转换为顺序整数
- qt - 在 ubuntu 18.04 上正确安装 openbr
- http - HTTP协议和HTTP服务器有什么区别?