सभी उपयोगकर्ताओं को कैसे सूचीबद्ध किया जाए


9

एक अभ्यास के भाग के रूप में मैं अपने डेटाबेस से सभी उपयोगकर्ताओं के ईमेल को एक पृष्ठ पर सूचीबद्ध करने का प्रयास कर रहा हूं। अब तक सबसे पास जो मुझे मिला है वह है

$user = mage::getModel('customer/customer')->getCollection()->getData();

रिटर्न

array
0 => 
array
  'entity_id' => string '1' (length=1)
  'entity_type_id' => string '1' (length=1)
  'attribute_set_id' => string '0' (length=1)
  'website_id' => string '1' (length=1)
  'email' => string 'john.doe@example.com' (length=20)
  'group_id' => string '1' (length=1)
  'increment_id' => string '000000001' (length=9)
  'store_id' => string '1' (length=1)
  'created_at' => string '2007-08-30 23:23:13' (length=19)
  'updated_at' => string '2008-08-08 12:28:24' (length=19)
  'is_active' => string '1' (length=1)
  'disable_auto_group_change' => string '0' (length=1)
1 => 
array
  'entity_id' => string '2' (length=1)
  'entity_type_id' => string '1' (length=1)
  'attribute_set_id' => string '0' (length=1)
  'website_id' => string '1' (length=1)
  'email' => string 'tony09uk@gmail.com' (length=18)
  'group_id' => string '1' (length=1)
  'increment_id' => null
  'store_id' => string '1' (length=1)
  'created_at' => string '2013-07-19 14:31:00' (length=19)
  'updated_at' => string '2013-07-19 14:31:00' (length=19)
  'is_active' => string '1' (length=1)
  'disable_auto_group_change' => string '0' (length=1)

लेकिन मैं केवल यह चाहता हूं कि उनके ईमेल को सूचीबद्ध किया जाए मैंने जादू पाने वालों और बसने की कोशिश की है लेकिन नोलक (या कम से कम जिस तरह से ive ने उनका इस्तेमाल किया है) नहीं। मैंने भी कोशिश की है

    $user = mage::getModel('customer/customer')->getCollection()->load();

तथा

    $user = mage::getModel('customer/customer')->getCollection()
                                               ->addAttributeToSort('email', 'ASC');

तथा

$user = mage::getModel('customer/customer')->getCollection()->getEmail()->getData();

तथा

$user = mage::getModel('customer/customer')->getCollection()->getData();
echo $user->getEmail();

और साथ ही कई अन्य विविधताओं के बाद, अब मुझे इस बात पर ध्यान आ गया है कि मैं इस काम में आशा से बेतरतीब ढंग से चिपके हुए आज्ञाओं को पूरा कर रहा हूं, जो मुझे करना पसंद नहीं है।

मैं अपने सभी उपयोगकर्ताओं के लिए ईमेल कैसे प्रदर्शित करूँ? (मुझे आशा है कि मैं निशान से दूर नहीं हूँ)

जवाबों:


19

आप वास्तव में लगभग वहाँ हैं, लेकिन यह जानना महत्वपूर्ण है कि क्या हो रहा है। यदि आप उस getCollectionविधि का उपयोग कर रहे हैं जो आप वास्तव में एक क्वेरी का निर्माण कर रहे हैं। आगे बढ़ो और निम्नलिखित प्रयास करें

$collection = mage::getModel('customer/customer')->getCollection();
var_dump((string)$collection->getSelect());

जो आपको निम्नलिखित पर लौटाएगा

का चयन करें e। * से customer_entityके रूप में eजहां ( eentity_type_id = '1')

यह ग्राहक संग्रह के लिए डिफ़ॉल्ट क्वेरी है। जैसा कि आप फ़ील्ड को निर्दिष्ट करने के बिना नोटिस कर सकते हैं कि यह सब कुछ पुनर्प्राप्त करता है। तो कुछ फ़ील्ड को जोड़ने देता है!

$collection = mage::getModel('customer/customer')->getCollection()
   ->addAttributeToSelect('email')
   ->addAttributeToFilter('firstname', 'sander')
   ->addAttributeToSort('email', 'ASC');
var_dump((string)$collection->getSelect());

यह निम्नलिखित क्वेरी को प्रिंट करेगा

चयन करें e। * at_firstname,। valueके रूप में firstnameसे customer_entityके रूप में eअंदरूनी शामिल हों customer_entity_varcharके रूप में at_firstnameपर ( at_firstnameentity_id= eentity_id) और ( at_firstnameattribute_id= '5') कहां ( eentity_type_id= '1') और (at_firstname.value = 'Sander') आदेश द्वारा eemailएएससी

जैसा कि आप देख सकते हैं कि Magento आपके लिए उन विशेषताओं के आधार पर क्वेरी को सही करने के लिए बनाता है, जिन्हें आप फ़िल्टर, चयन, ऑर्डर या जो भी आप करना चाहते हैं, जोड़ते हैं। की जाँच करें Magento संग्रह विकी क्योंकि वहाँ विकल्प आप उपयोग कर सकते हैं की एक बहुत हैं संग्रह के बारे में अधिक के लिए पेज।

आपके मामले में आपको केवल addAttributeToSelectयह निर्दिष्ट करने की आवश्यकता है ताकि यह केवल उस फ़ील्ड को पुनः प्राप्त करे। गैर ईएवी संग्रह पर उपयोग करें addFieldToSelect

$users = mage::getModel('customer/customer')->getCollection()
           ->addAttributeToSelect('email');

foreach ($users as $user)
   var_dump($user->getData());

कोड के लिए धन्यवाद, $ उपयोगकर्ता-> getData ('ईमेल') सही! मैं इस पर पढ़ा होगा
tony09uk

1
एक छोटे से अद्यतन जो Magento के :) अपने खोज पर आपकी मदद कर सकते मेड
Sander Mangel
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.