Comment corriger l’erreur Unknown Column ‘updated_at’ de Laravel ?

Introduction

L’ORM Eloquent inclus avec Laravel vous fournit un moyen facile d’interagir avec votre base de données. Cela simplifie toutes les opérations CRUD (Create, read, update, and delete) et toute autre requête de base de données.

Comme décrit dans le document officiel Documentation Laravel, Eloquent s’attend à ce que le created_at et updated_at doivent exister dans la table de base de données correspondante de votre modèle.

Cependant, dans certains cas spécifiques, il se peut que vous n’ayez pas ces deux tables en place.

Dans cet article, vous apprendrez comment corriger le Laravel Unknown Column 'updated_at' en désactivant les timestamps de Laravel pour un modèle spécifique!

Désactiver les colonnes timestamps dans votre modèle

Afin de désactiver les colonnes timestamps pour un modèle spécifique, il suffit de définir une propriété publique appelée $timestamps et de lui attribuer la valeur false.

De cette façon, lorsque vous essayez de mettre à jour votre modèle, vous n’obtiendrez pas le message Unknown Column 'updated_at' erreur.

Ayons un modèle appelé Video à titre d’exemple :

<?php

namespace AppModels;

use IlluminateDatabaseEloquentModel;

class Video extends Model
{
    // Désactive timestamps
    public $timestamps = false;
}

Avec cela, Eloquent ne cherchera plus l’adresse de l’utilisateur. created_at et le updated_at colonnes.

Changement du nom des colonnes timestamps

Dans les cas de commande, il se peut que les colonnes timestamps soient présentes, mais avec des noms différents. timestamps mais plutôt spécifier les noms corrects des tables.

Pour ce faire, il suffit de spécifier les deux constantes suivantes dans votre modèle :

<?php

class Video extends Model
{
    const CREATED_AT = 'creation_date';
    const UPDATED_AT = 'updated_date';
}

De cette façon, Eloquent cherchera un updated_date plutôt que updated_at par défaut.

Nouveau Tutoriel

Newsletter

Ne manquez jamais les nouveaux conseils, tutoriels et autres.

Pas de spam, jamais. Nous ne partagerons jamais votre adresse électronique et vous pouvez vous désabonner à tout moment.