0Pricing
PHP Academy · Leçon

Modèles Eloquent et migrations

Générer des modèles et des migrations de base de données avec les commandes Artisan.

Modèles Eloquent et migrations est une leçon PHP Academy gratuite sur CoddyKit. Ceci est la leçon 1 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage PHP Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours PHP Academy comprend 4 leçons au total.

Qu’est-ce qu’Eloquent ?

Eloquent est l’ORM ActiveRecord de Laravel. Chaque table de la base de données possède une classe Model correspondante qui représente une ligne et fournit des méthodes de requête.

Générer un modèle

Utilisez Artisan pour créer un modèle. Ajoutez -m pour générer également un fichier de migration.

$ php artisan make:model Post -m
# Creates:
# app/Models/Post.php
# database/migrations/xxxx_create_posts_table.php

La classe du modèle

Un modèle Eloquent minimal doit simplement étendre Model. Eloquent déduit le nom de la table à partir du nom de la classe (au pluriel, avec des traits de soulignement).

<?php
namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class Post extends Model
{
    protected $fillable = ["title", "body", "user_id"];
}

Fichier de migration

La migration définit le schéma de la table. Exécutez php artisan migrate pour l’appliquer.

<?php
public function up(): void
{
    Schema::create("posts", function (Blueprint $table) {
        $table->id();
        $table->string("title");
        $table->text("body");
        $table->foreignId("user_id")->constrained()->cascadeOnDelete();
        $table->timestamps();
    });
}

Exécuter les migrations

Appliquez les migrations en attente à la base de données.

$ php artisan migrate
# Rollback:
$ php artisan migrate:rollback
# Fresh (drop all and re-migrate):
$ php artisan migrate:fresh

$fillable contre $guarded

$fillable établit une liste blanche des colonnes pour l’affectation en masse. $guarded établit une liste noire des colonnes. Ne définissez jamais $guarded = [] en production sans y réfléchir attentivement.

<?php
// Whitelist approach (recommended):
protected $fillable = ["title", "body"];

// Blacklist approach:
protected $guarded = ["id", "created_at"];

Conversions de types

La propriété $casts convertit automatiquement les valeurs des colonnes en types PHP.

<?php
protected $casts = [
    "is_published" => "boolean",
    "metadata"     => "array",       // JSON column
    "published_at" => "datetime",
];

Éléments masqués et visibles

La propriété $hidden exclut des colonnes de la sérialisation JSON ou en tableau — ce qui est utile pour les mots de passe et les jetons.

<?php
protected $hidden = ["password", "remember_token"];

Nom de table personnalisé

Remplacez le nom de table par défaut avec la propriété $table.

<?php
protected $table = "blog_posts"; // instead of "posts"

Suppressions logiques

Ajoutez le trait SoftDeletes et une colonne deleted_at. Les enregistrements ne sont pas réellement supprimés : ils sont marqués par un horodatage et exclus des requêtes normales.

<?php
use Illuminate\Database\Eloquent\SoftDeletes;

class Post extends Model {
    use SoftDeletes;
}

Horodatages

Par défaut, Eloquent gère les colonnes created_at et updated_at. Définissez $timestamps = false pour désactiver ce comportement.

Résumé

Les modèles Eloquent correspondent aux tables de la base de données. Utilisez Artisan pour générer ensemble les modèles et les migrations. Définissez $fillable pour sécuriser l’affectation en masse. Utilisez $casts pour convertir automatiquement les types.

Vérification rapide

Quel indicateur Artisan génère une migration en même temps qu’un modèle ?

Questions Fréquemment Posées

La leçon « Modèles Eloquent et migrations » est-elle gratuite ?

Oui — le texte complet de « Modèles Eloquent et migrations » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours PHP Academy, passe à CoddyKit PRO. Le cours PHP Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Modèles Eloquent et migrations » ?

Générer des modèles et des migrations de base de données avec les commandes Artisan. Tu pratiques PHP Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer PHP Academy ?

Aucune expérience préalable n'est requise. PHP Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 1 sur 4.

Combien de temps prend la leçon « Modèles Eloquent et migrations » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon PHP Academy ?

Oui. Chaque leçon PHP Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Modèles Eloquent et migrations
  2. CRUD avec Eloquent
  3. Relations Eloquent
  4. Chargement anticipé et portées de requête
← Retour à PHP Academy