Laravel Résumé
Models Migration Relation
Introduction Installation Projet:Structure Strucutre,model,migration Migration,Models,Relation Artisan CLI
Les Relations
BelongsTo HasOne HasMany BelongsToMany HasManyThrough
Exemples des Relations
Relations:oneToMany,ManyToMany... Relations:Exemples
Exercices
Exercice 1 Exercice 2
Controllers Views Routes
Routes,Controller,Model,view
Les Routes
Définir:Routes Routes avec Paramètres Routes nommées Groupes de routes
Les Controllers
Les Controllers Les Contrôleurs de Ressources
Les Vues
Vues et Blade Templates Blade Layouts et Sections Sous-vues Composants et Slots Contrôles de flux
MVC :CRUD
CRUD: Produit CRUD: Etudiant CRUD: Car CRUD,Recherche: Book
Validation
Exemple :Projets
ORM:Eloquent
Exemple :Transport
Api:Laravel +React
Middleware

Seeders & Factories
Exemples :EFM

Authenfication
Queue,job,task
TP:Schools Management
Authenfication:React
Layouts
Exercices





Laravel: Introduction à Eloquent

Laravel: Introduction à Eloquent

Présentation de l'ORM Eloquent

Eloquent est l'ORM (Object-Relational Mapper) intégré au framework Laravel. Il permet de gérer les interactions avec la base de données de manière élégante et intuitive en utilisant des modèles qui représentent les tables et les relations de la base de données. Eloquent simplifie la manipulation des données en encapsulant des requêtes SQL complexes dans une syntaxe expressive et facile à lire.

Installation et configuration

Eloquent est intégré par défaut dans Laravel. Après avoir installé Laravel via Composer, vous n'avez besoin d'aucune configuration supplémentaire pour utiliser Eloquent.

composer create-project --prefer-dist laravel/laravel blog

La configuration de la base de données se fait dans le fichier .env :

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=nom_de_la_base
DB_USERNAME=utilisateur
DB_PASSWORD=mot_de_passe

Modèles Eloquent

Création et définition des modèles

Pour commencer à utiliser Eloquent, vous devez créer un modèle. Un modèle dans Eloquent est une classe PHP qui représente une table dans votre base de données.

php artisan make:model Post

Cette commande crée un fichier de modèle dans app/Models/Post.php.

Exemple de modèle de base :

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class Post extends Model
{
    use HasFactory;
}

Relations entre modèles

Eloquent facilite la gestion des relations entre les différentes tables de votre base de données.

Relation One-to-Many

Considérons une situation où un post peut avoir plusieurs commentaires. Pour définir cette relation, vous devez définir des méthodes dans vos modèles.

Modèle Post :

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class Post extends Model
{
    public function comments()
    {
        return $this->hasMany(Comment::class);
    }
}

Modèle Comment :

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class Comment extends Model
{
    public function post()
    {
        return $this->belongsTo(Post::class);
    }
}

Utilisation des relations :

$post = Post::find(1);
$comments = $post->comments;

foreach ($comments as $comment) {
    echo $comment->content;
}

Relation Many-to-Many

Considérons une situation où un utilisateur peut avoir plusieurs rôles et un rôle peut être attribué à plusieurs utilisateurs.

Modèle User :

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class User extends Model
{
    public function roles()
    {
        return $this->belongsToMany(Role::class);
    }
}

Modèle Role :

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class Role extends Model
{
    public function users()
    {
        return $this->belongsToMany(User::class);
    }
}

Utilisation des relations :

$user = User::find(1);
$roles = $user->roles;

foreach ($roles as $role) {
    echo $role->name;
}

Conclusion

Laravel Eloquent est un outil puissant pour interagir avec votre base de données de manière élégante et intuitive. En utilisant des modèles et des relations, vous pouvez facilement manipuler vos données et garder votre code propre et maintenable.