Skip to main content
Category:

Disable Timestamps

If your DB table doesn't contain timestamp fields created_at and updated_at, you can specify that Eloquent model wouldn't use them, with $timestamps = false property.

class Company extends Model {

    public $timestamps = false;

}

 

Change Timestamp Column Names

    const CREATED_AT = 'create_time';
    const UPDATED_AT = 'update_time'; 

 

Change Timestamp Date/Time Format

    /**
     * The storage format of the model's date columns.
     *
     * @var string
     */
    protected $dateFormat = 'U';

 

Order by Timestamp with latest() and oldest()

Instead of:

User::orderBy('created_at', 'desc')->get();

You can do it quicker:

User::latest()->get();

 

Instead of:

User::orderBy('created_at', 'asc')->get();

You can do it quicker:

User::oldest()->get();

 

Update without touching updated_at

$user = User::find(1);
$user->profile_views_count = 123;
$user->timestamps = false;
$user->save();

 

Set new value to ONLY updated_at column

So, instead of:

$user->update(['updated_at' => now()]);

You can use a shorter method:

$user->touch();

 

Timestamp Fields are Carbon Automatically

By default, both created_at and updated_at are casts as $dates of Eloquent model, so you can perform Carbon operations on them, without converting to Carbon instance.

Example:

$user->created_at->addDays(3);

 

 

 

Riadh Rahmi

Senior Web Developer PHP/Drupal & Laravel

I am a senior web developer, I have experience in planning and developing large scale dynamic web solutions especially in Drupal & Laravel.

Web Posts

Search

Page Facebook