📜  没有时间戳的 laravel 模型 - PHP (1)

📅  最后修改于: 2023-12-03 15:26:57.225000             🧑  作者: Mango

没有时间戳的 Laravel 模型

在 Laravel 中,模型默认会自动维护 created_atupdated_at 两个时间戳字段。但有些情况下,我们需要在模型中禁用掉这一功能,本文将会为您介绍如何实现没有时间戳的 Laravel 模型。

禁用模型时间戳

要禁用模型时间戳,我们可以在模型中使用 public $timestamps = false; 变量来实现:

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

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

此时,模型实例不会自动更新 created_atupdated_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 模型的全部内容了。如有问题请留言。