أواجه مشكلة في الانضمام إلى جدول العملاء إلى جدول شبكة المبيعات

magento.stackexchange https://magento.stackexchange.com//questions/63345

  •  12-12-2019
  •  | 
  •  

سؤال

يريد العميل أن يتم عرض جزء معين من البيانات من جدول العملاء بدلا من الاسم الأخير للعميل في شبكة أمر المبيعات.أحاول الانضمام إلى جدول العملاء إلى جدول شبكة المبيعات ، لكنني واجهت مشكلات.تمكنت من الانضمام بنجاح إلى جدول الدفع الخاص بالمبيعات إلى جدول الشبكة الخاص بالمبيعات لعرض رقم أمر الشراء في الشبكة;يفترض بسبب الطبيعة المماثلة للجداول.وهنا الانضمام حاولت في البداية من Mage_Adminhtml_Block_Sales_Order_Grid صف دراسي.ونعم ، وأنا أعلم عدم تعديل الملفات الأساسية.أردت فقط التأكد من أن الكود كان صحيحا قبل تمديد الإطار.:)

protected function _prepareCollection()
{
    $collection = Mage::getResourceModel($this->_getCollectionClass());
    $resource = Mage::getSingleton('core/resource');
    $collection->getSelect()->join('customer_entity_varchar', 'main_table.customer_id = customer_entity_varchar.entity_id', array('value'));
    $this->setCollection($collection);
    return parent::_prepareCollection();
}
هل كانت مفيدة؟

المحلول

افترض السمة code of PO Number is po_number تحتاج إلى الحصول على تفاصيل السمة باستخدام

Mage::getResourceModel('customer/customer') Model by attribute code .

إذا كان رمز السمة الخاص بك عبارة عن مخزن ، فيمكنك الحصول على اسم جدول السمة والسمة باستخدام الرمز أدناه.

$po_number  = Mage::getResourceModel('customer/customer')->getAttribute('po_number');
$tablename=$po_number->getBackend()->getTable();

$الجدول تم اتخاذها من قبل static.it يمكن أن تأخذ ديناميكية من قبل رمز أعلاه

$attributeId=$po_number>getAttributeId() 

كما customer_entity_varchar يحتوي الجدول على lots of records مع different attribute so you need to put attribute id in join query condition.

$collection = Mage::getResourceModel($this->_getCollectionClass());
$collection>getSelect()->joinLeft(
    array('ccp' =>$po_number->getBackend()->getTable()),
    'ccp.entity_id = main_table.customer_id
    AND ccp.attribute_id = '.(int) $po_number->getAttributeId() . '
    ',
    array('$po_number-'=>'value')); 
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى magento.stackexchange
scroll top