2016-05-12 139 views
1

我需要在活动网站的表格上添加last_activity列,我必须使其默认值等于updated_at列值。我使用laravel 5.1和mysql数据库驱动程序。Laravel迁移:添加具有现有列的默认值的列

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

谢谢。

回答

5

这应该工作:

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

+1

这正是我想要的。谢谢。 –

+1

如果你使用'$ table-> timestamp('last_activity') - > useCurrent();'当行更新时它会继续设置last_activity。 –

相关问题