Blog Alphorm Logo de blog informatique spécialisé en technologie et solutions IT
  • Développement
  • 3D et Animation
  • Cybersécurité
  • Infrastructure
  • Virtualisation
  • Réseaux
  • Bureautique
  • BDD
En cours de lecture : Afficher les données utilisateur avec Eloquent
Agrandisseur de policeAa
Blog AlphormBlog Alphorm
  • Développement
  • 3D et Animation
  • Cybersécurité
  • Infrastructure
  • Virtualisation
  • Réseaux
  • Bureautique
  • BDD
Search
  • Développement
  • 3D et Animation
  • Cybersécurité
  • Infrastructure
  • Virtualisation
  • Réseaux
  • Bureautique
  • BDD
Suivez-nous
© Alphorm 2024 - Tous droits réservés
Développement

Afficher les données utilisateur avec Eloquent

L'Équipe Alphorm Par L'Équipe Alphorm 9 janvier 2025
Partager
Partager

Afficher les données utilisateur liées à un article peut être complexe sans une bonne structure.

Sans les relations Eloquent, vous risquez de dupliquer des données ou de rencontrer des erreurs fréquentes.

Découvrez comment utiliser les relations Eloquent pour gérer efficacement et afficher les informations utilisateur dans vos vues Laravel.

Table de matière
Afficher utilisateurs avec Eloquent Laravel{{ $article->title }}UserController : méthode profile() pour modèles LaravelRoute model binding dans web.phpFAQConclusion

Formation Laravel : Le Guide Complet du Débutant

Initiez-vous à Laravel et réalisez votre première application en toute confiance.

Découvrir cette formation

Cet axe consiste à afficher des données provenant d’un modèle lié à un autre modèle en utilisant les relations Eloquent. Ici, nous allons afficher les informations de l’utilisateur lié à chaque article, telles que son nom et la date d’inscription, et créer un lien vers son profil.

Afficher utilisateurs avec Eloquent Laravel

Dans une application Laravel, vous pouvez lier des modèles entre eux à l’aide des relations Eloquent. Dans ce cas, nous allons lier un modèle Article avec un modèle User pour afficher les informations de l’utilisateur associé à chaque article. Cela permet d’afficher des données telles que le nom de l’utilisateur et la date de son inscription, tout en créant un lien vers son profil.

Dans la vue article/index.blade.php, nous allons afficher les articles avec les informations de l’utilisateur qui y est lié.

Voici un extrait de code qui vous montre comment intégrer les données de l’utilisateur :

				
					
 <div class="col-lg-9">
@foreach($articles as $article)
<div class="card mt-4">
<div class="card-body">
<h2 id="articletitle" class="rb-heading-index-2 card-title"><h2 class="card-title">
<a href="{{ route(&#039;articles.show&#039;, [&#039;article&#039; =" data-wpel-link="internal" target="_self" rel="follow noopener noreferrer"> $article->id]) }}">
{{ $article->title }}
</a>
</h2></h2>
<p class="card-text">{{ Str::words($article->content, 5) }}</p>
<!-- Affichage des données de l'utilisateur lié -->
<span class="author">
Par <a href="{{ route(&#039;user.profile&#039;, [&#039;user&#039; =" data-wpel-link="internal" target="_self" rel="follow noopener noreferrer"> $article->user->id]) }}">
{{ $article->user->name }}
</a> inscrit le {{ $article->user->created_at->format('d/m/y') }}
</span> <br>
<span class="time">{{ $article->created_at->diffForHumans() }}</span>
</div>
</div>
@endforeach
</div>

				
			
  • {{ $article->user->name }} permet d’afficher le nom de l’utilisateur lié à l’article grâce à la relation définie dans le modèle.
  • {{ route(‘user.profile’, [‘user’ => $article->user->id]) }} génère un lien vers la page de profil de l’utilisateur.
  • {{ $article->user->created_at->format(‘d/m/y’) }} affiche la date d’inscription de l’utilisateur dans le format jj/mm/aa.
Infos : Assurez-vous que la relation entre les modèles Article et User est bien définie dans le modèle

Les relations entre les modèles Article et User sont définies grâce à Eloquent. Dans le modèle Article, vous allez déclarer la relation belongsTo qui indique que chaque article appartient à un utilisateur.

Dans le model Article :

				
					
 public function user()
{
return $this->belongsTo(User::class);
}

				
			

De même, dans le modèle User, vous pouvez définir la relation inverse si nécessaire. Toutefois, dans ce cas précis, cette relation n’est pas utilisée ici, mais il est possible de définir une relation hasMany dans le modèle User pour indiquer qu’un utilisateur peut avoir plusieurs articles.

Et dans le model User :

				
					
 public function user()
{
return $this->belongsTo(User::class);
}

				
			
Erreur Courante : Si la relation user() n’est pas définie dans le modèle Article, l’appel à $article->user->name retournera une erreur Trying to get property ‘name’ of non-object.

UserController : méthode profile() pour modèles Laravel

La méthode profile() dans le contrôleur UserController est utilisée pour afficher le profil d’un utilisateur spécifique. Grâce à la liaison de modèles (route model binding), Laravel passe automatiquement l’instance de l’utilisateur à la méthode.

				
					
 public function profile(User $user){
return 'je suis un utilisateur '.$user->name;
}

				
			
  • La méthode profile() accepte un paramètre User $user grâce à la liaison de modèles (route model binding).
  • Elle retourne un simple message affichant le nom de l’utilisateur.
Astuce Pratique : Vous pouvez étendre cette méthode pour retourner une vue plus détaillée contenant toutes les informations de l’utilisateur.

Route model binding dans web.php

Assurez-vous que la route est bien définie pour accéder au profil de l’utilisateur.

				
					
 Route::get('profile/{user}',[UserController::class,'profile'])->name('user.profile');

				
			

Cette route utilise la liaison de modèles pour passer automatiquement l’instance de User correspondant à l’ID dans l’URL à la méthode profile().

Résultat affiché

Lorsque cette configuration est mise en place, chaque article affichera :

  • Le nom de l’auteur de l’article avec un lien cliquable menant à son profil.
  • La date à laquelle l’utilisateur s’est inscrit, formatée comme jj/mm/aa.

Exemple de rendu visuel dans la vue :

Titre d'article de blog sur Eloquent Laravel
Astuce Pratique : Pour éviter les erreurs lorsqu’une relation est inexistante, vous pouvez utiliser l’opérateur de navigation sûre ? :
				
					
 {{$article->user?->name ?? 'Auteur inconnu'}}

				
			

Et lorsque vous cliquez sur ce nom, vous êtes redirigé vers la page URL /profile/id_user, comme illustré ci-dessous :

Capture profil utilisateur Laravel Eloquent

Formez-vous gratuitement avec Alphorm !

Maîtrisez les compétences clés en IT grâce à nos formations gratuites et accélérez votre carrière dès aujourd'hui.

Démarrer gratuitement
illustration processus de paiement en ligne avec étapes claires et convivialité

FAQ

Comment afficher les données utilisateur avec Eloquent dans Laravel ?
Pour afficher les données utilisateur dans Laravel en utilisant Eloquent, définissez une relation belongsTo dans votre modèle Article pour lier les utilisateurs aux articles. Ensuite, dans votre vue Blade, vous pouvez accéder aux informations de l’utilisateur, telles que le nom et la date d’inscription, en utilisant la syntaxe {{ $article->user->name }}. Cette approche permet de créer directement un lien vers le profil utilisateur.
Quel est le rôle de la méthode profile() dans UserController ?
La méthode profile() dans UserController est utilisée pour afficher le profil d’un utilisateur spécifique. Grâce à la liaison de modèles (route model binding), Laravel passe automatiquement l’instance de l’utilisateur à cette méthode. Elle accepte un paramètre User $user et peut être étendue pour retourner une vue détaillée des informations utilisateur. Actuellement, elle renvoie un message simple avec le nom de l’utilisateur.
Comment définir une route pour accéder au profil utilisateur dans Laravel ?
Pour accéder au profil utilisateur dans Laravel, définissez une route dans le fichier web.php. Par exemple, utilisez Route::get(‘profile/{user}’,[UserController::class,’profile’])->name(‘user.profile’);. Cette route utilise la liaison de modèles pour passer automatiquement l’instance de User correspondant à l’ID dans l’URL à la méthode profile() du UserController.
Comment gérer les erreurs de relation inexistante dans Laravel ?
Dans Laravel, pour éviter les erreurs lorsque la relation entre modèles est inexistante, utilisez l’opérateur de navigation sûre ?. Par exemple, {{$article->user?->name ?? ‘Auteur inconnu’}} permet de vérifier si l’utilisateur existe avant d’afficher son nom. Cela évite des erreurs telles que ‘Trying to get property ‘name’ of non-object’ si la relation user() n’est pas définie.
Comment afficher les articles avec les informations utilisateur liées dans une vue Blade ?
Pour afficher des articles avec les informations utilisateur dans une vue Blade, parcourez vos articles avec une boucle @foreach et utilisez la syntaxe Blade pour afficher les données utilisateur liées. Par exemple, dans une carte d’article, affichez le titre, un extrait de contenu et les informations utilisateur (nom et date d’inscription) avec des liens vers leurs profils en utilisant {{ route(‘user.profile’, [‘user’ => $article->user->id]) }}.

Conclusion

En maîtrisant les relations Eloquent, vous enrichissez vos applications Laravel avec des données utilisateur dynamiques et interactives. Quelles autres fonctionnalités Eloquent souhaitez-vous explorer pour améliorer vos projets Laravel ?

ÉTIQUETÉ : Laravel
Facebook
Twitter
LinkedIn
Email
WhatsApp
Par L'Équipe Alphorm
Démocratiser la Connaissance Informatique pour Tous !
Suivre :
L'Équipe Alphorm, c'est la démocratisation de la connaissance informatique. Passionnés et dévoués, nous sommes là pour vous guider vers le succès en rendant la technologie accessible à tous. Rejoignez notre aventure d'apprentissage et de partage. Avec nous, le savoir IT devient une ressource inspirante et ouverte à tous dans un monde numérique en constante évolution.

Derniers Articles

  • Techniques pour gérer les fichiers texte en C#
  • Créer et lire un fichier CSV avec C#
  • JSON : Comprendre et Utiliser Efficacement
  • Créer une Base SQLite dans C#
  • Lecture des données SQLite simplifiée
Laisser un commentaire Laisser un commentaire

Laisser un commentaire Annuler la réponse

Vous devez vous connecter pour publier un commentaire.

Blog Alphorm
  • Développement
  • 3D et Animation
  • Cybersécurité
  • Infrastructure
  • Virtualisation
  • Réseaux
  • Bureautique
  • BDD
En cours de lecture : Afficher les données utilisateur avec Eloquent

© Alphorm - Tous droits réservés