Route: code/Vender_name/Module_name/Setup/UpgradeSchema.phpphp
<?php namespace Vender_name\Module_name\Setup; use Magento\Framework\Setup\UpgradeSchemaInterface; use Magento\Framework\Setup\ModuleContextInterface; use Magento\Framework\Setup\SchemaSetupInterface; use Magento\Framework\DB\Ddl\Table; class UpgradeSchema implements UpgradeSchemaInterface { /** * @param SchemaSetupInterface $setup * @param ModuleContextInterface $context */ public function upgrade(SchemaSetupInterface $setup, ModuleContextInterface $context) { $setup->startSetup(); if (version_compare($context->getVersion(), '1.0.1') < 0) { if ($setup->getConnection()->isTableExists($setup->getTable('supplier_data')) != true) { $table = $setup->getConnection() ->newTable($setup->getTable('supplier_data')) ->addColumn( 'supplier_id' , Table::TYPE_INTEGER , null , [ 'identity' => true , 'unsigned' => true , 'nullable' => false , 'primary' => true ] , 'Supplier Id' )->addColumn( 'supplier_name' , Table::TYPE_TEXT , 255 , ['nullable' => false , 'default' => ''] , 'Supplier Name' )->addColumn( 'mobile' , Table::TYPE_TEXT , 255 , ['nullable' => false , 'default' => ''] , 'Supplier Mobile' )->addColumn( 'address' , Table::TYPE_TEXT , 255 , ['nullable' => false , 'default' => ''] , 'Supplier Address' )->addColumn( 'city' , Table::TYPE_TEXT , 255 , ['nullable' => false , 'default' => ''] , 'Supplier City' )->addColumn( 'country' , Table::TYPE_TEXT , 255 , ['nullable' => false , 'default' => ''] , 'Supplier Country' )->addColumn( 'link' , Table::TYPE_TEXT , 255 , ['nullable' => false , 'default' => ''] , 'Supplier Link' )->addColumn( 'status' , Table::TYPE_SMALLINT, null , ['nullable' => false , 'default' => 0] , 'Status' )->addColumn( 'created_at' , Table::TYPE_TIMESTAMP , null , ['nullable' => false , 'default' => ''] , 'Created Date' )->addColumn( 'updated_at' , Table::TYPE_TIMESTAMP , null , ['nullable' => false , 'default' => ''] , 'Updated Date' ) ->setComment('Supplier Table') ->setOption('type', 'InnoDB') ->setOption('charset', 'utf8'); $setup->getConnection()->createTable($table); } } $setup->endSetup(); } }
執行 php bin/magento setup:upgrade
注:執行命令前檢查module.xml文件中的版本是否更改ide
1)Create Modelthis
<?php namespace Vender_name\Module_name\Model; class Supplier extends \Magento\Framework\Model\AbstractModel { /** * Initialize resource model */ protected function _construct() { $this->_init('Vender_name\Module_name\Model\Resource\Supplier'); } }
2)Create Resource Modelspa
<?php namespace Vender_name\Module_name\Model\Resource; class Supplier extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * Initialize resource model */ protected function _construct() { $this->_init('supplier_data', 'supplier_id'); } }
3)Create Collectioncode
<?php namespace Vender_name\Module_name\Model\Resource\Supplier; class Collection extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection { /** * Define model & resource model */ protected function _construct() { $this->_init( 'Vender_name\Module_name\Model\Supplier', 'Vender_name\Module_name\Model\Resource\Supplier' ); } protected function _beforeLoad() { parent::_beforeLoad(); $this->setOrder('supplier_id', 'DESC'); return $this; }
後續獲取 supplier 表中的數據直接經過模型對象獲取便可;
示例:xml
$objectManager = \Magento\Framework\App\ObjectManager::getInstance(); $supplier = $objectManager->get('Vender_name\Module_name\Model\Supplier')->load($supplierId); $data = $supplier->getData();