কীভাবে সমস্ত ব্যবহারকারীদের তালিকাভুক্ত করবেন


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উচ্চক্রমে

আপনি দেখতে পাচ্ছেন যে আপনি ফিল্টার যুক্ত বৈশিষ্ট্য, নির্বাচন, অর্ডার বা আপনি যা করতে চান তার উপর নির্ভর করে ম্যাজেন্টো আপনার জন্য ক্যোয়ারী সংশোধন করতে বিল্ডস তৈরি করে। সংগ্রহগুলিতে আরও জানতে ম্যাজেন্টো সংগ্রহ উইকি পৃষ্ঠাটি দেখুন কারণ আপনি ব্যবহার করতে পারেন এমন প্রচুর বিকল্প রয়েছে।

আপনার ক্ষেত্রে আপনাকে কেবলমাত্র নির্দিষ্ট করতে হবে addAttributeToSelectযাতে এটি কেবল সেই ক্ষেত্রটি পুনরুদ্ধার করে। নন EAV সংগ্রহ ব্যবহার করুন addFieldToSelect

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

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

কোডটির জন্য ধন্যবাদ, $ ব্যবহারকারী-> getData ('ইমেল') পারফেক্ট! আমি এটি পড়তে হবে
tony09uk

1
একটি সামান্য আপডেট তৈরি করেছেন যা আপনাকে ম্যাজেন্টো :) অনুসন্ধানে আপনাকে সহায়তা করতে পারে :)
স্যান্ডার ম্যানগেল
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.