🔺 Moyen 10 questions

QCM Laravel - Eloquent ORM

Quiz interactif sur Eloquent ORM de Laravel. Testez vos connaissances sur les modèles, les relations et les requêtes.

#php #laravel

Comment jouer ?

  • 1. Lisez chaque question attentivement
  • 2. Choisissez votre réponse parmi les options
  • 3. Cliquez sur "Voir la réponse" pour vérifier
  • 4. Comptez vos bonnes réponses à la fin !

Quiz: QCM Laravel - Eloquent ORM

10 questions | Difficulté: moyen


Question 1

Quelle méthode Eloquent permet de récupérer tous les enregistrements d’une table ?

  • A. Model::get()
  • B. Model::all()
  • C. Model::fetch()
  • D. Model::select()
Voir la réponse

Réponse correcte: B

Model::all() récupère tous les enregistrements. Model::get() est utilisé après une chaîne de méthodes comme where() ou orderBy().


Question 2

Comment définir une relation “un à plusieurs” (hasMany) dans un modèle Eloquent ?

  • A. return $this->hasMany(Comment::class);
  • B. return $this->belongsToMany(Comment::class);
  • C. return $this->hasOne(Comment::class);
  • D. return $this->manyToMany(Comment::class);
Voir la réponse

Réponse correcte: A

hasMany() définit une relation un-à-plusieurs. Par exemple, un Post a plusieurs Comments. La relation inverse utilise belongsTo().


Question 3

Quelle commande Artisan crée un modèle avec sa migration ?

  • A. php artisan make:model Post
  • B. php artisan make:model Post -m
  • C. php artisan make:model Post --migration
  • D. Les options B et C sont correctes
Voir la réponse

Réponse correcte: D

-m et --migration sont équivalents et créent une migration avec le modèle. On peut aussi ajouter -c pour le controller et -f pour la factory.


Question 4

Comment activer le soft delete sur un modèle Eloquent ?

  • A. Ajouter une colonne deleted à la table
  • B. Utiliser le trait SoftDeletes et ajouter une colonne deleted_at
  • C. Configurer le soft delete dans le fichier config
  • D. Appeler $model->enableSoftDelete()
Voir la réponse

Réponse correcte: B

Pour activer le soft delete, il faut: 1) utiliser use SoftDeletes; dans le modèle, et 2) ajouter $table->softDeletes(); dans la migration pour créer la colonne deleted_at.


Question 5

Qu’est-ce que le Mass Assignment dans Eloquent ?

  • A. La création de plusieurs enregistrements en même temps
  • B. L’assignation de plusieurs attributs d’un modèle via un tableau
  • C. La mise à jour de plusieurs tables simultanément
  • D. L’import massif de données depuis un fichier CSV
Voir la réponse

Réponse correcte: B

Le Mass Assignment permet d’assigner plusieurs attributs via un tableau, comme User::create(['name' => 'John', 'email' => 'john@example.com']). Il faut définir $fillable ou $guarded pour la sécurité.


Question 6

Comment définir une relation many-to-many entre User et Role ?

  • A. return $this->hasMany(Role::class);
  • B. return $this->belongsToMany(Role::class);
  • C. return $this->manyToMany(Role::class);
  • D. return $this->hasManyThrough(Role::class);
Voir la réponse

Réponse correcte: B

belongsToMany() définit une relation many-to-many. Elle nécessite une table pivot (ex: role_user) qui contient les clés étrangères des deux modèles.


Question 7

Quelle méthode permet de récupérer un enregistrement ou lancer une erreur 404 ?

  • A. Model::find($id)
  • B. Model::findOrFail($id)
  • C. Model::findOr404($id)
  • D. Model::getOrFail($id)
Voir la réponse

Réponse correcte: B

findOrFail($id) récupère l’enregistrement ou lance une exception ModelNotFoundException qui se traduit par une erreur 404. find($id) retourne null si non trouvé.


Question 8

Comment eager load les relations pour éviter le problème N+1 ?

  • A. Post::all()->load('comments');
  • B. Post::with('comments')->get();
  • C. Post::eager('comments')->get();
  • D. Post::include('comments')->get();
Voir la réponse

Réponse correcte: B

with() charge les relations de manière “eager” (en avance), évitant ainsi le problème N+1 où chaque accès à une relation génère une nouvelle requête.


Question 9

Qu’est-ce qu’un Accessor dans Eloquent ?

  • A. Une méthode pour accéder à la base de données
  • B. Une méthode qui modifie un attribut lors de sa lecture
  • C. Une méthode pour valider les données
  • D. Une méthode pour gérer les permissions
Voir la réponse

Réponse correcte: B

Un Accessor permet de modifier la valeur d’un attribut lors de sa lecture. Par exemple: getFullNameAttribute() peut concaténer prénom et nom.


Question 10

Comment créer une requête avec une condition “where” en Eloquent ?

  • A. User::where('status', '=', 'active')->get();
  • B. User::where('status', 'active')->get();
  • C. Les deux syntaxes A et B sont correctes
  • D. User::filter('status', 'active')->get();
Voir la réponse

Réponse correcte: C

Les deux syntaxes sont valides. where('column', 'value') utilise = par défaut. On peut aussi spécifier l’opérateur: where('age', '>', 18).