مشكلة في عرض القائمة المنسدلة للمتجر متعدد التحديد في الوحدة المخصصة

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

  •  12-12-2019
  •  | 
  •  

سؤال

لدي وحدة مجتمع مخصصة أرغب فيها بالسماح بالقائمة المنسدلة للمتجر متعدد التحديد.

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

هل يمكن لأحد أن يخبرني، ما الذي أفتقده في النموذج؟

هل كانت مفيدة؟

المحلول

يمكنك إضافة هذا إلى Form.php الخاص بك

$fieldset->addField('store_id','multiselect',array(
            'name'      => 'stores[]',
            'label'     => Mage::helper('banners')->__('Store View'),
            'title'     => Mage::helper('banners')->__('Store View'),
            'required'  => true,
            'values'    => Mage::getSingleton('adminhtml/system_store')->getStoreValuesForForm(false, true)
        ));

ويجب أن يكون لديك وظيفة في الوحدة الخاصة بك مع _afterLoad وظيفة

class Mage_Banners_Model_Mysql4_Banners extends Mage_Core_Model_Mysql4_Abstract
{
    public function _construct()
    {    
        // Note that the banners_id refers to the key field in your database table.
        $this->_init('banners/banners', 'banners_id');
    }


 protected function _afterLoad(Mage_Core_Model_Abstract $object)
{

    $select = $this->_getReadAdapter()->select()
        ->from($this->getTable('banners_store'))
        ->where('banners_id = ?', $object->getId());

    if ($data = $this->_getReadAdapter()->fetchAll($select)) {
        $storesArray = array();
        foreach ($data as $row) {
            $storesArray[] = $row['store_id'];
        }
        $object->setData('store_id', $storesArray);
    }

    return parent::_afterLoad($object);

}

الكود أعلاه هو فقط لمساعدتك، ويمكنك تعيينه وفقًا لاسم العمود وجداول قاعدة البيانات

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى magento.stackexchange
scroll top