2017-06-28 53 views
0

我试图创建一个自定义模块的Magento 2,我得在/Setup/InstallSchema.phpMagento的2 - 错误的定制模式创建数据库表

当定义模式的点运行'php bin/magento setup:upgrade'我得到错误: 调用未定义的函数Test/Connector/Setup/getConnection()

该模块已启用并正确显示在配置文件中。我试图运行的模式文件是:

<?php 
namespace Test\Connector\Setup; 

use Magento\Framework\Setup\InstallSchemaInterface; 
use Magento\Framework\Setup\ModuleContextInterface; 
use Magento\Framework\Setup\SchemaSetupInterface; 
use Magento\Framework\DB\Ddl\Table; 

class InstallSchema implements InstallSchemaInterface 
{ 


public function install(SchemaSetupInterface $setup, ModuleContextInterface 
$context) { 
    $installer = $setup; 

    $installer->startSetup(); 

    $tableName = $installer->getTable('test_connector_settings'); 

    if ($installer->getConnection()->isTableExists($tableName) != true) { 
    $table = $installer->getConnection() 
     ->newTable($installer->getTable('ipos_connector_settings')) 
     ->addColumn('id', Table::TYPE_SMALLINT, null, ['identity'=> true, 'nullable'=>false, 'primary'=>true], 'ID') 
    ->addColumn('api_url', Table::TYPE_TEXT, 255, ['nullable'=>true], 'API URL') 
     ->addColumn('api_user', Table::TYPE_TEXT, 100, ['nullable'=>false], 'API User Name') 
     ->addColumn('api_password', Table::TYPE_TEXT, 100, ['nullable'=>false], 'API Password'); 

    $installer-getConnection()->createTable($table); 
    } 

    $installer->endSetup(); 
} 
} 

由于提前,

回答

0

请改变这一行

$installer-getConnection()->createTable($table); // your code line. 

随着

$installer->getConnection()->createTable($table); 
+0

谢谢Jitendra,虽然我现在感觉有点尴尬。我非常关注getConnection()的前两个实例,我从来没有像第三个实例那样。获得的教训,解决问题的第一步是使用验证程序! – Steve