gpt4 book ai didi

php - 在 yii 2 中构建 'AND' 查询

转载 作者:行者123 更新时间:2023-11-28 23:26:38 24 4
gpt4 key购买 nike

你好,我想找出使用​​了什么方法/方式,以便我可以在我的代码中构建一个“AND”查询,因为我怀疑我现在一直在使用的查询使用“OR”查询查看代码下面。

我认为这是构建“或”查询:

 ActiveSubject::find()->where(['clientid' => $clientid,
'subjectid' => $subjects['subjectid'],]);

我在互联网上搜索过,人们建议使用 andWhere()

ActiveSubject::find()->select(['clientid', 'subjectid'])
->andWhere(['clientid' => $_user,])
->andWhere(['subjectid' => $subjects['subjectid'],]);

但仍然怀疑它仍在使用“或”,因为即使没有相关的 subjectid,输出仍会获取带有 clientid 的所有行。你能帮我找出在 yii 2 中构建“WHERE”查询的正确方法吗?

编辑 1:

我是这样做的:

  <?php if(ActiveSubject::find()->where(['clientid' => $_user,
'subjectid' => $subjects['subjectid'],]))://if true? ?>

<!--do this-->

<?php else: ?>

<!--do this-->

<?php endif; ?>

但是,当查询失败时,它并没有执行 else:

编辑 2

我的目标是我这边的 if 函数,但我认为它不起作用的原因是查询它没有满足 bool 值,但实际上它返回了一个 ActiveQuery 实例,我意识到我错了.因此,如果我在 ActiveSubject 模型中创建一个返回 bool 值的函数会更有意义。

最佳答案

第一个使用AND,与第二个相同。如果您不确定生成的 SQL,请检查您的调试器输出或调用类似以下内容:

echo ActiveSubject::find()
->where([
'clientid' => $clientid,
'subjectid' => $subjects['subjectid']
])
->createCommand()
->sql;

关于php - 在 yii 2 中构建 'AND' 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39075663/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com