New table by UpgradeSchema
Route: code/Vender_name/Module_name/Setup/UpgradeSchema.php
<?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文件中的版本是否更改
Create Model, Resource Model and Collection
1)Create Model
<?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 Model
<?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 Collection
<?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 表中的数据直接通过模型对象获取即可;
示例:
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$supplier = $objectManager->get('Vender_name\Module_name\Model\Supplier')->load($supplierId);
$data = $supplier->getData();
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。