получение имен клиентов
Я пытаюсь отобразить имена и фамилии всех своих пользователей и адреса электронной почты, чтобы попрактиковаться в извлечении значений из базы данных и объединении таблиц.
Я пытался покопаться в коде в приложении/коде/ядре/Маге/клиенте/модели, чтобы узнать, как выбрать конкретные значения из двух разных таблиц. Я вижу, что нужные мне данные хранятся в 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
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
}
Получить коллекцию клиентов :
$collection = Mage::getModel('customer/customer')->getCollection()
->addAttributeToSelect('firstname')
->addAttributeToSelect('lastname');
foreach ($collection as $collections)
{
print_r($collections->getName());//Print full name of all customers
}