编写本主题的目的是帮助您使用MYSQL 在Magento 2的InstallSchema中创建自动更新时间属性。MYSQL将直接与TIMESTAMP和DATETIME一起使用,允许自动初始化,更新和显示您网站上的当前日期和时间,而不是必须在PHP代码中手动插入正确的日期和时间值,特别是:
- 自动初始化时间属性意味着自动加载当前时间戳和日期时间。
- 自动更新时间属性意味着自动更新到当前时间戳和日期时间。
要在Magento 2商店中完美地构建自动更新时间属性,您可以参考以下脚本代码。代码需要添加到InstallSchema文件中。
app/code/Mageplaza/HelloWorld/Setup/InstallSchema.php
这里有两列created_at
,update_at
包含在您的表中。将新行设置为数据表时,将在created_at列中执行自动初始化,如果继续更新数据表中的行,则将更改updated_at。
...
->addColumn(
'created_at',
\Magento\Framework\DB\Ddl\Table::TYPE_TIMESTAMP,
null,
['nullable' => false, 'default' => \Magento\Framework\DB\Ddl\Table::TIMESTAMP_INIT],
'Created At'
)->addColumn(
'updated_at',
\Magento\Framework\DB\Ddl\Table::TYPE_TIMESTAMP,
null,
['nullable' => false, 'default' => \Magento\Framework\DB\Ddl\Table::TIMESTAMP_INIT_UPDATE],
'Updated At'
)
->addColumn(
'created_at',
\Magento\Framework\DB\Ddl\Table::TYPE_TIMESTAMP,
null,
['nullable' => false, 'default' => \Magento\Framework\DB\Ddl\Table::TIMESTAMP_INIT],
'Created At'
)->addColumn(
'updated_at',
\Magento\Framework\DB\Ddl\Table::TYPE_TIMESTAMP,
null,
['nullable' => false, 'default' => \Magento\Framework\DB\Ddl\Table::TIMESTAMP_INIT_UPDATE],
'Updated At'
)
...
最后,您需要php bin/magento setup:upgrade
在控制台中运行该命令,之后,将在MYSQL中建立created_at
和updated_at
字段。
完成所有操作后,这意味着您可以InstallSchema
在Magento 2中使用自动更新时间属性。