كيف يمكنني الحصول على كافة حقول الطلب؟
-
13-12-2019 - |
سؤال
أنا أعمل مع Magento، ولدي طلبات وأقوم بطباعتها على النحو التالي:
echo $order->getId();
echo $order->getCustomerEmail();
مشكلتي هي أنني لا أعرف كل أسماء طرق الحصول، فكيف أو أين يمكنني العثور على جميع قائمة الحصول المتاحة؟
هدفي هو تصدير جميع الطلبات في قاعدة بيانات خارجية، هل هناك طريقة أسرع للقيام بذلك دون الحاجة إلى تصريح مرور لكل حقل؟
المحلول
يتم الاحتفاظ بالبيانات الموجودة على الطلب (أو أي كائن) في متغير عضو محمي _data
وهي مصفوفة.تأتي هذه البيانات من جدول (جداول) قاعدة البيانات (يتم ملؤها بواسطة نموذج المورد).
مصفوفة البيانات
يمكنك الحصول على هذه المصفوفة وتفريغها عبر:
print_r($order->getData());
// or
var_dump($order->getData());
سوف تحصل على إخراج مثل هذا مع print_r()
:
Array
(
[entity_id] => 2
[state] => new
[status] => pending
// ...
جيتر
يمكنك الآن الحصول على كل هذه البيانات باستخدام الحروف السحرية لكائنات Magento.كل قيمة قابلة للاسترجاع في شكل $object->getValue()
أين Value
هي النسخة ذات الغلاف الجملي للمفتاح من المصفوفة.
بالنسبة للقيم المذكورة أعلاه، استخدم:
$order->getEntityId();
$order->getState();
$order->getStatus();
ولل customer_id
على سبيل المثال يمكنك الاتصال $order->getCustomerId()
يتجاوز
يمكن تجاوز الحروف.يتم تعريف بناء getters في Varien_Object
فئة وكل نموذج Magento يمكن أن يتجاوز طريقة getter السحرية من خلال تحديد الطريقة بشكل صريح.لذلك يجب عليك أيضًا التحقق من أساليب النموذج من خلال النظر إلى الكود أو استخدام التلميحات في IDE الخاص بك.
نصائح أخرى
يمكنك ببساطة طباعة جميع الحقل المتاح في الكائن الخاص بك مع:
giveacodicetagpre.لا يتم تخزين الطلبات بتنسيق EAV، لذا تكون كافة البيانات في جدول مسطح.عن طريق تحميل أ sales/order
مثيل النموذج الذي تقوم بتحميل صف من sales_flat_order
الجدول بحيث يمكنك سحب أي عمود تراه هنا من كائن الطلب، أي سحب increment_id
العمود، يمكنك الاتصال $order->getIncrementId()
.انتبه أيضًا إلى أن هناك بعض الأساليب في Mage_Sales_Model_Order
كائن فئة لبناء كمية معينة من البيانات بالنسبة لك، على سبيل المثال getCustomerName()
الذي يُرجع اسم العميل ولكنه لا يتعلق بـ a customer_name
العمود في sales_flat_order
طاولة .
حاول
giveacodicetagpre.محلول سطر واحد:
giveacodicetagpre.من: https://stackoverflow.com/questions/25245862/get- جميع أسماء الحقول - من Magento-model