Home > PHP Framework > Laravel > body text

How to cancel created_at in laravel

PHPz
Release: 2023-04-21 11:16:32
Original
966 people have browsed it

In the Laravel framework, each Eloquent model contains two timestamp fields, created_at and updated_at, by default. These two fields record the creation and update time of the model. The advantage of this is that it is convenient to record the update time of the data and to implement some functions, such as sorting by creation time and update time, etc.

However, in some scenarios, we may not need these two timestamp fields. For example, some old database tables may not have these two fields, or we do not need to record the creation and update time of the data at all. In this case, we can cancel created_at and updated_at by adding the following two lines of code to the model:

public $timestamps = false;
Copy after login

Doing this will cancel the created_at and updated_at fields in the model. However, it should be noted that canceling these two timestamp fields will cause some of Laravel's built-in functions to fail. For example, the model cannot be sorted by the created_at and updated_at fields, nor can it automatically record the creation and update time of data.

If we only need to cancel one of the timestamp fields, such as only created_at, then we can do this:

// 只取消 created_at
const UPDATED_AT = 'updated_at';
Copy after login

This method is to assign the UPDATED_AT constant to the updated_at string, and by default The value of UPDATED_AT is updated_at, so doing this only cancels created_at.

After we cancel these timestamp fields, if we need to record our own data creation time and update time, then we need to manually write code to achieve it. The following is an example:

// 在模型中实现自定义时间戳字段
protected $dateFormat = 'U';
protected static function boot()
{
    parent::boot();
    static::creating(function ($model) {
        $model->create_time = $model->freshTimestamp();
    });
    static::updating(function ($model) {
        $model->update_time = $model->freshTimestamp();
    });
}
Copy after login

In this example, we define two fields, create_time and update_time, in the model to record the creation time and update time of the data. At the same time, we modify the default time format by defining the $dateFormat attribute. In the boot method, we assign values ​​to create_time and update_time through the creating and updating events. The freshTimestamp method can get the latest timestamp.

To summarize, canceling created_at and updated_at can be achieved by adding $timestamps = false to the model or modifying the UPDATED_AT constant. Canceling these timestamp fields will affect some built-in functions in Laravel, such as sorting and automatic time recording, etc. If you need to implement timestamp recording yourself, you can do it by manually writing code.

The above is the detailed content of How to cancel created_at in laravel. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!