получение имен клиентов


Я пытаюсь отобразить имена и фамилии всех своих пользователей и адреса электронной почты, чтобы попрактиковаться в извлечении значений из базы данных и объединении таблиц.

Я пытался покопаться в коде в приложении/коде/ядре/Маге/клиенте/модели, чтобы узнать, как выбрать конкретные значения из двух разных таблиц. Я вижу, что нужные мне данные хранятся в customer_entity_varchar и customer_entity и связаны столбцом entity_id, но не могу найти пример того, как я мог бы достичь мой желаемый результат.

Я работал над предположением, что коллекции - это способ сделать это, и до сих пор у меня есть это

$model = Mage::getResourceModel('customer/customer_collection');

var_dump($model->getData());

Но здесь показаны все столбцы, и мне просто нужна электронная почта, поэтому я попробовал это

$model = Mage::getResourceModel('customer/customer_collection');

foreach($model as $cust){
    echo '<br/>' . $cust['email'] . '<br/>';
}

Но я уверен, что коллекция была бы лучшим способом сделать это. Кроме того, мне все еще нужно присоединиться к customer_entity_varchar, но я не могу найти, какую модель мне нужно использовать.

Во-первых, как мне выбрать адрес электронной почты и полное имя клиента? Во-вторых, где я должен был искать код для получения этого ответа?

===========

Последняя попытка, которую я предпринял, была

$model = Mage::getResourceModel('customer/customer_collection');
    $model->getSelect()
          ->join(Mage::getConfig()->getTablePrefix() . 'customer', 'main_table.entity_id = ' . Mage::getConfig()->getTablePrefix() . 'customer.entity_id', array('*'));

  var_dump($model->getData());

Но получил это SQLSTATE[42S02]: Base table or view not found: 1146 Table 'magentostoretest.customer' doesn't exist

Author: tony09uk, 2013-11-25

2 answers

Коллекция клиентов - это коллекция подслушивающих устройств. Это означает, что вам придется добавить атрибуты для выбора при получении коллекции. Если это не подслушивание, вы можете заменить addAttributeToSelect на addFieldToSelect.

$collection = Mage::getModel('customer/customer')->getCollection()
   ->addAttributeToSelect('firstname')
   ->addAttributeToSelect('lastname')
   ->addAttributeToSelect('email');

foreach ($collection as $item)
{
   var_dump($item->getData());
   break; // just display one item
}
 11
Author: Sander Mangel, 2013-11-25 13:31:29

Получить коллекцию клиентов :

$collection = Mage::getModel('customer/customer')->getCollection()
   ->addAttributeToSelect('firstname')
   ->addAttributeToSelect('lastname');


foreach ($collection as $collections)
{
   print_r($collections->getName());//Print full name of all customers

}
 2
Author: Deepak Mankotia, 2014-12-10 09:32:55