Change created_at and updated_at names to other fields

Let’s imagine a scenario where you have an old database and re-writing codebase to Laravel. Database structure may not follow Laravel standards – created_at and updated_at fields are named differently. How can you “tell it to Laravel”?

For example, if your fields are called create_time and update_time, here’s what you do in migration:

Schema::create('movies', function (Blueprint $table) {
    $table->increments('id');
    $table->string('title');
    $table->timestamp('create_time')->nullable();
    $table->timestamp('update_time')->nullable();
});

And then, apparently, it’s pretty simple – you can override the names of these fields in your model.

class Movie extends Model
{
    const CREATED_AT = 'create_time';
    const UPDATED_AT = 'update_time';
}

And here you don’t need any more mutators or attributes – these two fields will work exactly with the same auto-fill and auto-update logic as Laravel’s native ones.

Like our articles?
Check out our Laravel online courses!

LEAVE A REPLY

Please enter your comment!
Please enter your name here