在InstallSchema中创建自动更新时间属性

本文编写的目的就是帮助您使用 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 。

本教程翻译自Mageplaza模块开发系列,其他内容请点击下面链接: