There is a magical place called boot() in an Eloquent model where you can override default behavior

class User extends Model{
   public static function boot()
      { parent::boot();
        static::updating(function($model)
            {
            // do some logging
            // override some property like $model->something = transform($something);
            });
      }

}


Probably one of the most popular examples is setting some field value at the moment of creating the model object. Let’s say you want to generate UUID field at that moment.

public static function boot()
{
    parent::boot();
    self::creating(function ($model) {
      $model->uuid = (string)Uuid::generate();
    });
}

YOUR REACTION?



Facebook Conversations



Disqus Conversations