📜  laravel 为现有表添加时间戳 - PHP (1)

📅  最后修改于: 2023-12-03 15:32:34.319000             🧑  作者: Mango

Laravel:为现有表添加时间戳

在Laravel中,每个数据库表都应该包括created_at 和 updated_at两个列,它们会自动维护每条记录的创建和更新时间。但是,如果您已经有一个已经存在的表,该如何在其中添加这两个时间戳列呢?

使用 Laravel 迁移

Laravel 迁移是一种能够让你对数据库表进行版本控制的工具。通过编写迁移,您可以轻松地添加、修改或删除表中的列。因此,我们可以使用迁移来添加时间戳。

  1. 首先,我们需要创建一个新的迁移文件。在Laravel项目的根目录中打开命令行终端,并输入以下命令:

    php artisan make:migration add_timestamps_to_table_name
    

    其中 "table_name" 是您要添加时间戳的表的名称(不要输入实际的表名)。

    运行完上面的命令之后,Laravel会自动在/database/migrations目录下创建一个新的迁移文件,文件名将与命令中的名称相同。

  2. 打开新创建的迁移文件(文件名通常会以"2021_06_01_000000_add_timestamps_to_table_name.php"的形式命名),并使用以下代码向迁移文件中添加代码:

    public function up()
    {
        Schema::table('table_name', function (Blueprint $table) {
            $table->timestamps();
        });
    }
    
    public function down()
    {
        Schema::table('table_name', function (Blueprint $table) {
            $table->dropTimestamps();
        });
    }
    

    其中 "table_name" 应该被替换为您想要添加时间戳的表的实际名称。

    上述代码在 up 方法中添加了 timestamps 方法,该方法会让 Laravel 自动生成 created_atupdated_at 两个时间戳列。 而在 down 方法中添加了 dropTimestamps,用于回滚操作。

  3. 运行迁移

    运行以下命令来运行迁移文件:

    php artisan migrate
    

    这将在数据库中创建 created_atupdated_at 两个时间戳列。

现在,您的表已经包含了 created_atupdated_at 时间戳列,Laravel会在每次插入或更新数据时自动更新这些列的值。

总结

在 Laravel 中,使用迁移添加时间戳非常简单。通过在迁移文件中添加 timestamps 方法,您可以自动向表中添加 created_atupdated_at 时间戳列。