Definindo o Ano Atual como Valor Padrão em Migrations do Laravel
Paulo Bolsanello·03 Jun 2024·2 min de leitura
Ao trabalhar com migrations no Laravel, uma tarefa comum é definir valores padrão para colunas em tabelas de banco de dados. Uma situação específica é definir o ano atual como valor padrão para uma coluna. Este tutorial mostrará como fazer isso de maneira uniforme, independente do banco de dados escolhido, com exemplos específicos para MySQL e PostgreSQL.
Passo 1: Criar a Migration
Primeiro, crie a migration para adicionar a coluna ano à sua tabela. Use o comando Artisan para gerar a migration:
No arquivo de migration gerado, adicione a coluna ano com o valor padrão apropriado, dependendo do banco de dados:
Exemplo para MYSQL:
public function up()
{
Schema::table('exemplos', function (Blueprint $table) {
$table->integer('ano')->nullable()->default(DB::raw('YEAR(CURDATE())'));
});
}
public function down()
{
Schema::table('exemplos', function (Blueprint $table) {
$table->dropColumn('ano');
});
}
Exemplo para POSTGRESQL:
public function up()
{
Schema::table('exemplos', function (Blueprint $table) {
$table->integer('ano')->nullable()->default(DB::raw('EXTRACT(YEAR FROM CURRENT_DATE)'));
});
}
public function down()
{
Schema::table('exemplos', function (Blueprint $table) {
$table->dropColumn('ano');
});
}
Exemplo de como definir diretamento no modelo:
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Exemplo extends Model
{
protected static function boot()
{
parent::boot();
static::creating(function ($model) {
if (is_null($model->ano)) {
$model->ano = date('Y');
}
});
}
}
Depois de realizado os passos acima execute as migrations
php artisan migrate
Para garantir que tudo está funcionando conforme o esperado, você pode testar criando um novo registro na tabela exemplos. No Tinker ou em um controlador, crie um novo registro sem especificar o valor da coluna ano:
use App\Models\Exemplo;
$newRecord = Exemplo::create([
'status' => 'AGUARDANDO'
]);
echo $newRecord->ano; // Deve exibir o ano atual
No dia a dia, muitas vezes nos deparamos com a necessidade de unir vários arquivos PDF em um único documento. Seja para compilar relatórios, unir notas fiscais ou simplificar o envio de documentos, essa tarefa pode ser…
A ordem é: primeiro limpar o Docker, depois compactar o VHDX O ext4.vhdx é o disco virtual do WSL. Ele cresce conforme você usa, mas não encolhe sozinho quando você apaga coisas dentro do WSL. Por isso, mesmo que você…