Problema ao exibir o menu suspenso de seleção múltipla da loja no módulo personalizado
-
12-12-2019 - |
Pergunta
Eu tenho um módulo de comunidade personalizado no qual desejo permitir o menu suspenso de seleção múltipla de lojas.
Já estou exibindo o menu suspenso, mas quando salvo seu valor e, se eu editar o formulário, não vejo o valor selecionado destacando, embora o valor esteja armazenado corretamente no banco de dados.
Alguém pode me informar o que estou faltando no formulário?
Solução
você pode adicionar isso ao seu 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)
));
e você deve ter função em seu módulo com _afterLoad
função
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);
}
o código acima é apenas para sua ajuda, você pode configurá-lo de acordo com o nome da coluna e as tabelas do banco de dados
Licenciado em: CC-BY-SA com atribuição
Não afiliado a magento.stackexchange