本文编写的目的就是帮助您使用 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 在控制台中运行命令,然后,created_at 和 updated_at 两个字段会在 MYSQL 中被创建。
当完成所有,这意味着你可以在 Magento 2 中使用自动更新时属性 InstallSchema 。