在Supporting Store Multi-Select Down In Custom模块中的问题
-
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);
}
.
上面的代码只是为了您的帮助,您可以根据您的列名和数据库表设置它