Eloquent

Eloquent est un système de mappage objet-relationnel (ORM) inclus dans le framework PHP Laravel.

L’ORM permet de définir des classes qui représentent des tables de base de données comme des classes PHP en objet.

Ces classes contiennent des propriétés qui correspondent aux colonnes de la table, ainsi que des méthodes pour effectuer des opérations CRUD (Create, Read, Update, Delete) sur les données.

Chaque instance de la classe représente une ligne dans la table.

Les données de la base de données utilisent des objets plutôt que des requêtes SQL brutes, ce qui facilite le développement et la maintenance de l’application.

Exemple

use Illuminate\Database\Eloquent\Model;

class Article extends Model
{
    protected $table = 'articles';
    protected $fillable = ['title', 'content', 'published_at'];

    public function author()
    {
        return $this->belongsTo(User::class, 'user_id');
    }
}

Utilisation de la classe pour effectuer une action dans la base de données.

// Créer un nouvel article
$article = Article::create([
    'title' => 'Mon nouvel article',
    'content' => 'Contenu de mon nouvel article',
    'published_at' => now(),
    'user_id' => 1,
]);

// Mettre à jour un article existant
$article->update([
    'title' => 'Titre mis à jour',
    'content' => 'Contenu mis à jour',
]);

// Supprimer un article
$article->delete();

// Récupérer tous les articles publiés par un utilisateur donné
$user = User::find(1);
$articles = $user->articles()->whereNotNull('published_at')->get();