
A função WITH RECURSIVE no PostgreSQL
A função WITH RECURSIVE no PostgreSQL é uma ferramenta poderosa para a execução de consultas recursivas em bancos de dados.... Leia mais
Desenvolvedor de Software
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.
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:
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');
});
}
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');
});
}
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
A função WITH RECURSIVE no PostgreSQL é uma ferramenta poderosa para a execução de consultas recursivas em bancos de dados.... Leia mais
Se você já se deparou com a frustrante mensagem de erro “ssh: connect to host bitbucket.org port 22: Network is... Leia mais
E vamos a mais um tutorial de outro joguinho clássico só que dessa vez vamos recriar o Tetris. Link do... Leia mais
Elixir é uma linguagem de programação dinâmica e funcional, desenvolvida por José Valim em 2011, projetada para construir aplicações escaláveis... Leia mais