Laravel Dica Rápida – Método boot() no Model

O Laravel tem um sitio mágico que se chama boot()
. O método boot() num Model Eloquent é onde podes sobreescrever propriedades ou executar tarefas simples ao executares uma ação de CRUD no Model.
Por exemplo:
class User extends Model
{
public static function boot()
{
parent::boot();
static::updating(function($model)
{
// executar uma ação
// sobreescrever uma propriedade como $model->something = transform($something);
});
}
}
Muito provavelmente o exemplo mais popular entre os desenvolvedores é fazer set de um determindao campo no momento em que cria um novo objeto Model. Imagina que desejas gerar um campo UIDD. Podes fazer da seguinte forma:
public static function boot()
{
parent::boot();
self::creating(function ($model) {
$model->uuid = (string)Uuid::generate(); // Str::uuid(); também funciona
});
}