【发布时间】:2020-02-12 22:26:28
【问题描述】:
一个数据库的产品有很多选项,其中两个是,比如说,选项 1 和选项 2。我需要进行查询(我知道如何构建整个东西,我只是坚持以下逻辑) 将仅显示以下产品:
- 如果选项 1 和选项 2 均未选择,则显示所有产品
- 如果选择选项 1,则仅显示带有此选项的产品
- 如果选择了选项 2,则仅显示带有此选项的产品
- 如果选择了选项 1 和选项 2,则仅显示具有这两个选项的产品
我试过了:
function GetProducts(keywords) {
...
->andWhere($qb->expr()->orX(
$qb->expr()->eq('option1', keywords['option1']),
$qb->expr()->eq('option2', keywords['option2'])
))
...
}
keywords['option1'] 和keywords['option2'] 是带有此类选项的复选框中的值 0 或 1。
但结果如下:
- 如果选项 1 和选项 2 均未选择,则显示所有产品 - 确定
- 如果选择了选项 1,则会显示带有选项 1 的产品以及所有没有这两个选项的产品 - 不是我需要的
- 如果选择了选项 2,则会显示带有选项 1 的产品以及所有没有这 2 个选项的产品 - 不是我需要的
- 如果选择了选项 1 和选项 2,则会显示所有产品 - 不是我需要的
【问题讨论】:
标签: php doctrine-query