zzxworld

禁用 Laravel 框架的 created_at 和 updated_at 字段

使用 Laravel 框架的数据库模型类,其对应的数据表通常需要三个必备的字段:id, created_atupdated_at。没有这三个字段,在使用数据表模型创建或更新数据时会因为缺少这几个字段而执行失败。id 作为每张表的序号用途,每张表都添加并无大碍。但 created_atupdated_at 字段在有些场合并不是必须的字段,本文简单的总结一下如何根据情况不使用这个两个时间字段。

首先是两个字段都不使用,这种需求解决方法最简单,只需要在 Model 类中定义一个属性即可:

class UserToGroup extends Model
{
    public $timestamps = false;
}

这样无论是创建数据还是更新数据都不会需要它们。注意到 $timestamps 变量前的 public 关键词了吗,这表示它是一个公共属性。所以还可以这样来使用:

$user = new User();
$user->timestamps = false;
$user->save();

这样可以满足临时性禁用这两个时间字段的需求。

如果只是想禁用 updated_at 字段,可以通过定义一个常量来实现:

class UserToGroup extends Model
{
    const UPDATED_AT = null;
}

禁用 created_at 也类似,只是常量名称不同:

class UserToGroup extends Model
{
    const CREATED_AT = null;
}