默认情况下,Laravel Eloquent 希望模型对应的数据库表中存在 created_at 和 updated_at 列,用于记录模型的创建时间和更新时间。 在创建或更新模型时,Eloquent 会自动设置或更新这些列的值。

然而,我们并不总是需要 Laravel Eloquent 在更新模型时自动更新 updated_at 或其他自定义的代表更新时间的字段,比如我们要更新用户资料或者帖子的访问/浏览次数时。

如果您总是不希望 Eloquent 自动管理这些列,您应该在模型上定义一个 $timestamps 属性,其值为 false

<?php

namespace AppModels;

use IlluminateDatabaseEloquentModel;

class Flight extends Model
{
    /**
     * 指示模型是否主动维护时间戳。
     *
     * @var bool
     */
    public $timestamps = false;
}

如果您只是在特定时候不希望 Eloquent 自动管理这些列,那么也可以在模型操作中调用 $model->timestamps = false;

$user = User::find(1);
$user->timestamps = false;
$user->increment('profile_views_count');
$user->save();