2017-08-08 33 views
0

我創建了一個名稱爲MyCompany\MyModule的模塊。在這個模塊中,我想創建大約3或4個數據庫表,如:greeting_message,greeting_post,greeting_comment。然後,我創建Setup文件夾MyCompany\MyModule下,並添加文件InstallSchema.php 下面是代碼:Magento 2在模塊中創建多分貝表

<?php 

/** 
* Copyright © 2016 Magento. All rights reserved. 
* See COPYING.txt for license details. 
*/ 

namespace MyCompany\MyModle\Setup; 
use Magento\Framework\Setup\InstallSchemaInterface; 
use Magento\Framework\Setup\ModuleContextInterface; 
use Magento\Framework\Setup\SchemaSetupInterface; 

/** 
* @codeCoverageIgnore 
*/ 
class InstallSchema implements InstallSchemaInterface 
{ 
    /** 
    * {@inheritdoc} 
    * @SuppressWarnings(PHPMD.ExcessiveMethodLength) 
    */ 
    public function install(SchemaSetupInterface $setup, ModuleContextInterface $context) 
    { 
     /** 
     * Create table 'greeting_message' 
     */ 
     $table = $setup->getConnection() 
      ->newTable($setup->getTable('greeting_message')) 
      ->addColumn(
       'greeting_id', 
       \Magento\Framework\DB\Ddl\Table::TYPE_INTEGER, 
       null, 
       ['identity' => true, 'unsigned' => true, 'nullable' => false, 'primary' => true], 
       'Greeting ID' 
      ) 
      ->addColumn(
       'message', 
       \Magento\Framework\DB\Ddl\Table::TYPE_TEXT, 
       255, 
       ['nullable' => false, 'default' => ''], 
       'Message' 
      )->setComment("Greeting Message table"); 
     $setup->getConnection()->createTable($table); 
    } 
} 

它似乎我們只在文件中創建1個表。那麼,是否有一些方法可以在一個模塊中創建多個數據庫表?

回答

1

使用複製粘貼您的代碼爲一個表,並做相同的其他。這裏是所有表格,根據您的要求更改列。

<?php 

/** 
* Copyright © 2016 Magento. All rights reserved. 
* See COPYING.txt for license details. 
*/ 

namespace MyCompany\MyModle\Setup; 
use Magento\Framework\Setup\InstallSchemaInterface; 
use Magento\Framework\Setup\ModuleContextInterface; 
use Magento\Framework\Setup\SchemaSetupInterface; 

/** 
* @codeCoverageIgnore 
*/ 
class InstallSchema implements InstallSchemaInterface 
{ 
    /** 
    * {@inheritdoc} 
    * @SuppressWarnings(PHPMD.ExcessiveMethodLength) 
    */ 
    public function install(SchemaSetupInterface $setup, ModuleContextInterface $context) 
    { 
     /** 
     * Create table 'greeting_message' 
     */ 
     $table = $setup->getConnection() 
      ->newTable($setup->getTable('greeting_message')) 
      ->addColumn(
       'greeting_id', 
       \Magento\Framework\DB\Ddl\Table::TYPE_INTEGER, 
       null, 
       ['identity' => true, 'unsigned' => true, 'nullable' => false, 'primary' => true], 
       'Greeting ID' 
      ) 
      ->addColumn(
       'message', 
       \Magento\Framework\DB\Ddl\Table::TYPE_TEXT, 
       255, 
       ['nullable' => false, 'default' => ''], 
       'Message' 
      )->setComment("Greeting Message table"); 
     $setup->getConnection()->createTable($table); 

     /** 
     * Create table 'greeting_post' 
     */ 
     $table = $setup->getConnection() 
      ->newTable($setup->getTable('greeting_post')) 
      ->addColumn(
       'greeting_id', 
       \Magento\Framework\DB\Ddl\Table::TYPE_INTEGER, 
       null, 
       ['identity' => true, 'unsigned' => true, 'nullable' => false, 'primary' => true], 
       'Greeting ID' 
      ) 
      ->addColumn(
       'message', 
       \Magento\Framework\DB\Ddl\Table::TYPE_TEXT, 
       255, 
       ['nullable' => false, 'default' => ''], 
       'Message' 
      )->setComment("Greeting Message table"); 
     $setup->getConnection()->createTable($table); 

     /** 
     * Create table 'greeting_comment' 
     */ 
     $table = $setup->getConnection() 
      ->newTable($setup->getTable('greeting_comment')) 
      ->addColumn(
       'greeting_id', 
       \Magento\Framework\DB\Ddl\Table::TYPE_INTEGER, 
       null, 
       ['identity' => true, 'unsigned' => true, 'nullable' => false, 'primary' => true], 
       'Greeting ID' 
      ) 
      ->addColumn(
       'message', 
       \Magento\Framework\DB\Ddl\Table::TYPE_TEXT, 
       255, 
       ['nullable' => false, 'default' => ''], 
       'Message' 
      )->setComment("Greeting Message table"); 
     $setup->getConnection()->createTable($table); 

    } 
}