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.