如何为管理模块配置两个表?

时间:2014-01-02 02:21:01

标签: php magento magento-1.7 admin adminhtml

我有一个自定义模块。我正在使用此模块通过管理员上传图像。我的模块中还有6个表单字段。我目前正在使用一个表来存储这些表单字段的值。但是就像在magento中一样,我打算将图像值存储在另一个表中。我的表格结构如下。

Table : Banner

    Fields :  banner_id( primary_key , int(11) ) 

              banner_name( varchar (250) )

              banner_count( small_int (6) )

              status( small_int (6) )  

              store_id( varchar (250) )   

Table : banner_images

    Fields : bi_id( primary_key , int (11) ) 

             banner_id( int (11) ) //this should be the 'banner_id' of banner which holds this imge

             bi_name( varchar (255) ) //stores image_name

我当前的编辑文件如下所示:

<?php
    class Karaokeshop_Banner_Block_Adminhtml_Banner_Edit extends Mage_Adminhtml_Block_Widget_Form_Container
    {
        public function __construct()
        {
            parent::__construct();
            $this->_objectId = 'id';
            $this->_blockGroup = 'banner';
            $this->_controller = 'adminhtml_banner';
            $this->_updateButton('save', 'label', Mage::helper('banner')->__('Save Banner'));
            $this->_updateButton('delete', 'label', Mage::helper('banner')->__('Delete Banner'));

        }

        public function getHeaderText()
        {
            if( Mage::registry('banner_data') && Mage::registry('banner_data')->getId() ) 
            {
                return Mage::helper('banner')->__("Edit Banner");
            } 
            else 
            {
                return Mage::helper('banner')->__('Add Banner');
            }
        }
    }

我的sql文件如下所示:

?php
    $installer = $this;
    $installer->startSetup();
    $installer->run("
        DROP TABLE IF EXISTS {$this->getTable('banner')};
            CREATE TABLE {$this->getTable('banner')} (
                `banner_id` int(11) unsigned NOT NULL auto_increment,
                `banner_name` varchar(255) NOT NULL default '',
                `banner_count` smallint(6) NOT NULL default '0',
                `status` smallint(6) NOT NULL default '0',
                `store_id` varchar(255) NOT NULL default '',
                `img` varchar(255) NOT NULL default '',
                PRIMARY KEY (`banner_id`)
            ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
       ");
   $installer->endSetup();

我怎样才能做到这一点?如果有任何教程,请提供链接。提前致谢

1 个答案:

答案 0 :(得分:0)

您可以使用This Link

在自定义模块中创建多个表