Magento JOIN 在两个过滤的自定义集合之间

Posted

技术标签:

【中文标题】Magento JOIN 在两个过滤的自定义集合之间【英文标题】:Magento JOIN between two filtered custom collections 【发布时间】:2013-06-01 06:45:38 【问题描述】:

我有两个自定义模型(“myorder”和“myarticle”)。 每个“myarticle”都有一个外键“rif_ord_app”指向相关的“myorder”字段“rif_ordine_vsp”。 我需要过滤这两个集合,然后使用两个字段“rif_ord_app”和“rif_ordine_vsp”加入它们。

例如:

我过滤“myorders”集合:

$collection_orders = Mage::getModel('mycomp_logistic/myorder')->getCollection()
    ->addAttributeToSelect('*')
    ->addAttributeToFilter('customer_id', array('in' => array_values($arrayCustomersId)))
    ->addAttributeToFilter('payment_done_online', array('eq' => ($filter['is_from_where'] == 'from_web')))
    ->addAttributeToFilter('pdv_ritiro_id', array('eq' => $filter['pdv_ritiro_code']))
    ->addAttributeToFilter('pdv_ordinante_id', array('eq' => $filter['pdv_ordinante_code']))
    ->addAttributeToFilter('rif_ordine_vsp', array('eq' => $filter['num_ord']))
    ->addAttributeToFilter('data_ordine', array('from' => $daydate));

...然后我过滤“myarticle”集合:

$collection_articles = Mage::getModel('mycomp_logistic/myarticle')->getCollection()
    ->addAttributeToSelect('*')
    ->addAttributeToFilter('num_bolla', array('eq' => $filter['cod_bolla']))
    ->addAttributeToFilter('sscc', array('eq' => $filter['sscc']))
    ->addAttributeToFilter('stato', array('eq' => $filter['st_art']));

..最后...我没能加入这两个集合。

我尝试过这样的事情:

$tbl_order = Mage::getSingleton('core/resource')->getTableName('mycomp_logistic/myorder');
$collection_articles = $collection_articles->getSelect()->join(array('t2' => $tbl_order), 'main_table.rif_ord_app = t2.rif_ordine_vsp', 't2.rif_ordine_vsp');

..但我确定这是错误的方式。

有什么帮助吗?

【问题讨论】:

检查:joinField($alias, $table, $field, $bind, $cond=null, $joinType='inner') 方法。 magentocommerce.com/wiki/1_-_installation_and_configuration/… 我假设您真的需要 2 个 EAV 模型?因为使用平面模型会更容易。 【参考方案1】:

如果您仍想使用 DDL,则必须进行 Join 并在此之后应用过滤器...您不能加入 2 个过滤的集合来生成 1 个集合

【讨论】:

以上是关于Magento JOIN 在两个过滤的自定义集合之间的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Magento 1 中应用我的自定义目录价格规则条件?

过滤 Magento 集合而不是产品,使用 distinct

Magento模型集合addFieldToFilter常用过滤条件

如何在 Magento 2.3 中加入两个自定义表

Magento 2:如何按商店ID过滤产品集合

如何过滤日期的Magento集合或null