Laravel 6

Redéfinition de la fonction timestmps() du blueprint

Avatar de tigassefred
tigassefred

Salut . Je tente de redéfinir la fonction timestamps() dans la classe blueprint, afin d’intégrer la méthode →useCurrent() a la création des table created_at et updated_at... ainsi que d'autre creation de colonne. Depuis 6h cet mation je suis dessus mais impossible. Qui aurait une solution pour moi..?? Comment arriver a l'utilser dans la creation de table au niveau de mon fichier de migrations...

Coordialement..

Posté il y a 3 mois
Avatar de CinquièmeDimension
CinquièmeDimension

Salut,

Je ne comprends pas ce que tu veux faire... Voilà un example de truc qui fonctionne, je ne sais pas si ça aide:

Schema::create('failed_jobs', function (Blueprint $table) {
    $table->bigIncrements('id');
    $table->text('connection');
    $table->text('queue');
    $table->longText('payload');
    $table->longText('exception');
    $table->timestamp('failed_at')->useCurrent();
});
Posté il y a 3 mois
Avatar de JulienTant
JulienTant

Salut,

une solution est d'utiliser une macro pour t'aider. Dans ton AppServiceProvider (ou provider dédié ce serait encore mieux) tu peut mettre un truc du genre

Blueprint::macro('timestampsUsingCurrent', function () {  
    $this->timestamp('created_at')->useCurrent();
    $this->timestamp('updated_at')->useCurrent();
});

Et dans ton schema tu remplaces tes timestamps() par des timestampsUsingCurrent()

Posté il y a 3 mois

Vous ne pouvez pas répondre à ce sujet.