laravel7 修改或者关闭 update_at 和 created_at

在 Laravel 框架中,当你使用 `$this->save()` 方法时,它会默认填充 `created_at` 和 `updated_at` 字段。如果数据表字段命名不同或不需要这些字段,可以通过重定义 Model 类的常量来改变。可以将 `UPDATED_AT` 和 `CREATED_AT` 常量更改为自定义字段名,如 `UpdateTime` 和 `AddTime`,或者设置为 `null` 来禁用自动填充。此外,也可以通过设置 `$timestamps` 属性为 `false` 来关闭自动更新,或者使用 `$dateFormat` 设置时间戳格式为 Unix 时间戳。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

laravel 这个框架有时候管的太宽了,当你执行 $this->save()的时候,会自动填充update_at 和 created_at ,往往数据表并没有这两个字段或者根本不是这么命名的,这个时候需要更改类常量

定位到 Illuminate\Database\Eloquent\Model; 进去你会发现,有两个常量

const CREATED_AT = 'created_at';
const UPDATED_AT = 'updated_at';

我们最好不要去基层类里面修改框架源码,不是说不行,只是在多人合作项目里你会影响到别人的代码。

直接在类里面“修改”常量就是了。

(为啥常量能修改?额,常量确实不能修改,但是在类里面的类常量,是可以继承的。如果子类重新定义这个常量,那将不会继承父类的常量。所谓的修改其实是重新定义了一个。)

namespace App;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Facades\Request;
class User extends Model
{
    const UPDATED_AT = 'UpdateTime';
    const CREATED_AT = 'AddTime';
    public function creatuser(){
        $this->username = Request::get('username');
        $this->password =Request::get('password');
        $this->save();
    }
}

如何关闭?直接等于 null就行了

const UPDATED_AT = null;
const CREATED_AT = null;

也可以在类里面直接更改一个变量

public $timestamps = FALSE;

如果希望自动填充 update_at 但是又希望填充的是个时间戳

protected $dateFormat = 'U';
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

知其黑、受其白

喝个咖啡

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值