Comment sélectionner des colonnes spécifiques dans Laravel Eloquent ?

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.

Dans certains cas spécifiques, il se peut que vous ne souhaitiez pas obtenir toutes les colonnes d’une table spécifique mais seulement une ou certaines d’entre elles.

Dans ce tutoriel, vous apprendrez comment sélectionner des colonnes spécifiques dans Laravel eloquent!

Sélectionner des colonnes spécifiques avec SQL uniquement

Disons que nous avons une table appelée users avec les colonnes suivantes : name, username, age, email, phone.

Si vous vouliez obtenir toutes les informations de cette table avec seulement du SQL, la requête ressemblerait à ceci :

SELECT * FROM users WHERE username = 'gekko';

Cependant, si vous vouliez obtenir uniquement, disons, l’âge de l’utilisateur, vous devriez modifier le champ * par le nom de la colonne :

SELECT age FROM users WHERE username = 'gekko';

Si vous voulez obtenir deux colonnes, vous les divisez par une virgule :

SELECT name,age FROM users WHERE username = 'gekko';

Maintenant que nous savons comment faire cela avec SQL uniquement, apprenons comment nous pouvons réaliser cela avec Laravel.

Sélectionner des colonnes spécifiques avec Laravel Eloquent

Disons que nous avons déjà notre User en place. Pour obtenir toutes les colonnes du modèle users nous utiliserons la méthode suivante :

$user = User::where('username', 'gekko')->get();

Cependant, si vous souhaitez obtenir uniquement une colonne spécifique, vous pouvez la passer comme argument à la fonction get() méthode.

L’argument doit être un contenant une liste des colonnes que vous souhaitez obtenir.:

$user = User::where('username', 'gekko')->get(['name']);

Vous pourriez faire la même chose avec le first() et all() ainsi que des méthodes :

$user = User::where('username', 'gekko')->first(['name', 'age']);

Si vous voulez obtenir la valeur d’une seule colonne, vous pouvez utiliser la méthode suivante :

User::where('username', 'gekko')->first(['name'])->name;

Cependant, personnellement, je commencerais par vérifier s’il y a des entrées qui correspondent à la condition. et ensuite obtenir la propriété.

Nouveau Tutoriel

Newsletter

Ne manquez jamais les nouveaux conseils, tutoriels et autres.

Pas de spam, jamais. Nous ne partagerons jamais votre adresse électronique et vous pouvez vous désabonner à tout moment.