2

私はmagentoで少し経験を積み始めていますが、コレクションにはいくつかの矛盾があります。

  1. 一部のコレクションはaddAttributeToSelectとaddAttributeToFilterを使用しますが、他のコレクションはaddFilterとaddSelectを使用します。

これはなぜですか。また、どのコレクションがどのコレクションを使用しているかをどのように判断しますか?

  1. どのようにあなたはコレクションに参加しますか。私はそこにあるすべての例を試しましたが、うまくいきません。具体的には、配送、請求書、注文のコレクションに参加したいと思います
4

1 に答える 1

0
  1. 私の知る限り、MagnetoにはaddFilter関数とaddSelect関数はありません。addFieldToFilterあなたが参照するかもしれないのはとの違いaddAttributeToFilterです。

    これら2つの違いは、Magentoにはと呼ばれる特定のデータ型があることですEAV。あなたはそれについて他のどこでももっと読むことができます。製品とその属性、顧客、および売上高はEAV、Magnetoにあります。簡単な背景EAVは、データが別のテーブルに保持されているため、コレクションをフィルタリングする機能がまったく異なることです。

  2. これはあなたの2番目の質問に私たちをもたらします。Magentoには製品、顧客、または注文の単一のテーブルがないため、通常のSQLを適用することはできませんjoin。ただし、頻繁に必要になる可能性はほとんどありません。他のすべての非EAVケースでは、次の構文を使用できます。

    $collection = Mage::getModel('group/model')->getCollection();
    $collection->getSelect()->join(array(
        'your_alias' => Mage::getSingleton('core/resource')->getTableName('group2/model2')),
        'main_table.your_id = your_alias.your_id',
        array());
    

もっと明確にできるかどうか教えてください。

于 2012-06-17T15:40:44.443 に答える