カスタムモジュールでStore Multi-Selectドロップダウンの表示
-
12-12-2019 - |
質問
私は私がStore Multi-Selectドロップダウンを許可したいカスタムコミュニティモジュールを持っています。
すでにドロップダウンを表示していますが、値を保存してから、フォームを編集した場合は、値はデータベースに正しく保存されていますが、選択した値が表示されません。
誰かが私に知らせてください、私はフォームに何がありませんか?
解決
これを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);
}
.
上記のコードはあなたの列の名前とデータベーステーブルのようにそれを設定することができるあなたの助けのためのものです
所属していません magento.stackexchange