从一个页面中的两个模型获取数据 - Magento

时间:2012-04-19 20:47:15

标签: php magento

有人可以帮我解决以下两个问题吗?

  1. 如何在以下查询中过滤网站ID?
  2. 是否可以从一个文件中的两个集合中获取数据?最后一个值“company”应来自客户地址模型,该模型现已注释掉。
  3. <?php function getcustomers() 
    {
      /* Magento's Mage.php path
       * Mage Enabler users may skip these lines
       */
      require_once ("app/Mage.php");
      umask(0);
      Mage::app("nl");
      /* Magento's Mage.php path */
    
      /* Get customer model, run a query */
      $collection = Mage::getModel('customer/customer')
      //$collection = Mage::getModel('customer/address')
        ->getCollection()
        ->addAttributeToSelect('*');
    
      $result = array();
      foreach ($collection as $customer) { $result[] = $customer->toArray();  }
    
      return $result; 
    } 
    ?>
    
    <html>
    <head>
      <title>Customers</title>
      <style>    table {border-collapse: collapse;} 
      td {padding: 5px;   border:1px              solid             #000000;}
      </style>
    </head>
    <body>
    <table>
    <tr>
    <td>ID</td>
    <td>Lastname</td>
    <td>Firstname</td>
    <td>Email</td>
    <td>Is Active?</td>
    <td>Date Created</td>
    <td>Date Updated</td>
    <td>Website ID</td>
    <td>Store ID</td>
    <td>Zip Code</td>
    </tr>
    <?php
       $result = getcustomers();
       if(count($result) > 0)
       {
         foreach($result as $key => $value)
         {
           echo "<tr>";
           echo "<td>".$value['entity_id']."</td>";
           echo "<td>".$value['lastname']."</td>";
           echo "<td>".$value['firstname']."</td>";
           echo "<td>".$value['email']."</td>";
           echo "<td>";
           echo $value['is_active'] == 1 ? "Yes" : "No";
           echo "</td>";
           echo "<td>".$value['created_at']."</td>";
           echo "<td>".$value['updated_at']."</td>";
           echo "<td>".$value['website_id']."</td>";
           echo "<td>".$value['store_id']."</td>";
           echo "<td>".$value['zipcode']."</td>";
           echo "</tr>";
         }
       }
       else
       {
         echo "<tr><td colspan=\"7\">No records found</td></tr>";
       }
       ?>
       </table>
       </body>
       </html>
    

1 个答案:

答案 0 :(得分:1)

在这里,也许试试这个?我不知道这是否会奏效,但我认为它的方向正确。

<?php 

$collection1 = Mage::getModel('customer/customer')->getCollection();
$collection2 = Mage::getModel('customer/address')->getCollection();

$merged_ids = array_merge($collection1->getAllIds(), $collection2->getAllIds());

$merged_collection = Mage::getResourceModel('customer/customer_collection')
    ->addFieldToFilter('customer_id', $merged_ids)
    ->addAttributeToSelect('*')
    ->addStoreFilter();


?>