2017-08-08 12 views
0

私は名前がMyCompany\MyModuleのモジュールを作成しました。そして、このモジュールでは、greeting_message、greeting_post、greeting_commentのような約3〜4のdbテーブルを作成したいと思います。その後、私はMyCompany\MyModuleSetupフォルダを作成し、ここでファイルInstallSchema.php を追加するコードは次のとおりです。Magento 2はモジュール内にマルチdbテーブルを作成します

<?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つのモジュールに複数のDBテーブルを作成する方法はありますか?

答えて

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); 

    } 
} 
関連する問題