gpt4 book ai didi

php - 使用 Magento 的 addFieldToFilter 按现有列进行过滤

转载 作者:行者123 更新时间:2023-12-03 20:00:33 25 4
gpt4 key购买 nike

假设情况。我想为每个订单填充/加载一个 sales/order 集合,其中 grand_total 等于 total_paid。我知道我可以使用 addFieldToFilter 来按特定值进行过滤,但是是否可以使用此方法按其他数据库值进行过滤。如果没有,Magento 系统中是否有任何数据访问对象允许这样做。

$orders = Mage::getModel('sales/order');
$orders = $orders->getCollection();
$orders->addFieldToFilter('total_paid',Array('eq'=>30)); //would find all the orders that were 30
//syntax to find all the orders whose total_paid value is equal to it's grand_total attribute
//????????

我掌握的non-eav SQL 概念是:

SELECT * FROM Orders o WHERE o.total_paid = o.grand_total

这是否可以纯粹通过对象方法调用来完成,或者我是否需要进行加载后过滤?

其他 ORM 系统如何处理这个问题?

最佳答案

我一直在等待这个问题的明确答案,但鉴于没有任何结果,我不妨分享我所发现的内容。我跟踪了 addFieldToFilter ,显然您使用的每个值最终都会被引用,因此您无法通过使用列名来真正“破解”它。事实上,我看不出有什么办法可以做到这一点,至少在这个类(class)里是这样。

实际上,我认为您需要使用加载后过滤,至少现在是这样。这当然是低效代码的定义,但话又说回来,如果计算效率是优先考虑的,那么您一开始就不会使用 Magento...

关于php - 使用 Magento 的 addFieldToFilter 按现有列进行过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/652435/

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