Laravel中的自定义时间戳

Has*_*qib 0 timestamp laravel laravel-5

我想保留表格中某些列的更改时间记录.如何在db中获取和保存时间戳值?我试图按照以下方式进行,但在col_edited_at列中总是发送电子邮件00:00:00.

$case->col_edited_at = time();
$case->save();
Run Code Online (Sandbox Code Playgroud)

luk*_*ter 6

其他答案是正确的,但我有一个更优雅的解决方案的想法.因此,您不必再考虑设置时间戳了.将其添加到您的模型中,如果您更改列,它将刷新col_edited_at字段:

public static function boot(){
    parent::boot();

    static::saving(function($model){
        if($model->isDirty('col')){
            $model->col_edited_at = Carbon::now();
        }
    });
}
Run Code Online (Sandbox Code Playgroud)

因此,当模型被保存并且col变脏(意味着它已经改变)时,时间戳将被设置为当前时间.

用法:

$model = MyModel::find(1);
$model->col = 'foo';
$model->save();
Run Code Online (Sandbox Code Playgroud)