📅  最后修改于: 2023-12-03 15:26:57.225000             🧑  作者: Mango
在 Laravel 中,模型默认会自动维护 created_at
和 updated_at
两个时间戳字段。但有些情况下,我们需要在模型中禁用掉这一功能,本文将会为您介绍如何实现没有时间戳的 Laravel 模型。
要禁用模型时间戳,我们可以在模型中使用 public $timestamps = false;
变量来实现:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class YourModel extends Model
{
public $timestamps = false;
}
此时,模型实例不会自动更新 created_at
和 updated_at
字段了。
当您需要进行批量赋值时,如果模型启用了时间戳,则需要在传入参数中排除这两个字段。这时我们可以在模型中创建 protected $guarded = ['created_at', 'updated_at']
变量配合 $fillable
变量来实现:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class YourModel extends Model
{
public $timestamps = false;
protected $fillable = [
'name', 'email',
];
protected $guarded = [
'created_at', 'updated_at'
];
}
如果您需要手动地更新时间戳字段,可以使用下面的代码:
$model->updated_at = $updatedAt;
$model->save();
这就是实现没有时间戳的 Laravel 模型的全部内容了。如有问题请留言。