PauloRB.dev

Desenvolvedor de Software

Definindo o Ano Atual como Valor Padrão em Migrations do Laravel | PauloRB.dev Definindo o Ano Atual como Valor Padrão em Migrations do Laravel – PauloRB.dev
Definindo o Ano Atual como Valor Padrão em Migrations do Laravel

Definindo o Ano Atual como Valor Padrão em Migrations do Laravel

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:

php artisan make:migration add_ano_to_exemplos_table --table=exemplos

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

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

Mais Posts

Instalar o PGAdmin 4 em distribuições Linux Debian 12

Instalar o PGAdmin 4 em distribuições Linux Debian 12

Recentemente enquanto utilizava o Linux Mint 21 Vera tive uma série de problemas ao instalar o PGAdmin 4 e numa... Leia mais

Como Resolver Problemas de Permissões ao Usar Docker no WSL2

Como Resolver Problemas de Permissões ao Usar Docker no WSL2

O Docker é uma ferramenta poderosa para gerenciar contêineres, e sua integração com o WSL2 no Windows oferece um ambiente... Leia mais

Design Pattern Facade em PHP : Exemplo prático

Design Pattern Facade em PHP : Exemplo prático

O Design Pattern Facade é uma solução elegante para simplificar a interface de um subsistema complexo, tornando-o mais fácil de... Leia mais

Entendendo o Conceito de Estado no React

Entendendo o Conceito de Estado no React

Em React, o estado refere-se a uma estrutura de dados que determina o comportamento do componente e como ele será... Leia mais