Laravel Migration:添加一个默认值为现有列的列

时间:2016-05-12 10:39:19

标签: laravel laravel-5 laravel-5.1 laravel-migrations

我需要在一个实时网站的表格中添加一个last_activity列,我必须将其默认值设置为等于updated_at列值。我正在使用laravel 5.1和mysql数据库驱动程序。

Schema::table('users', function(Blueprint $table)
{
    $table->dateTime('last_activity')->default("COLUMN VALUE OF UPDATED_AT");
});

感谢。

1 个答案:

答案 0 :(得分:16)

这应该有效:

Schema::table('users', function(Blueprint $table) {
    $table->dateTime('last_activity');
});

\DB::statement('UPDATE users SET last_activity = updated_at');

请参阅"运行一般声明":https://laravel.com/docs/5.1/database#database-transactions

要在创建或更新User时强制执行此关系,您可以使用Model Events和/或Model Observers