Récupérer et afficher dynamiquement un article spécifique dans Laravel peut être complexe.
Sans une méthode claire, cela peut entraîner des erreurs de récupération et une expérience utilisateur médiocre.
Ce guide vous montrera comment utiliser efficacement la méthode show() et le Route Model Binding pour simplifier ce processus.
Initiez-vous à Laravel et réalisez votre première application en toute confiance.
Cet axe montre comment récupérer un article spécifique par son identifiant ou un autre champ unique et comment transmettre ces données à une vue pour l’afficher. Nous utiliserons la méthode show() du contrôleur pour gérer cette récupération et afficher l’article dans la vue article/show.blade.php.
Afficher un article: méthode show() Laravel
La méthode show() dans le contrôleur est essentielle pour récupérer un article spécifique et préparer les données à transmettre à la vue.
Voici le code de la méthode show() dans le contrôleur ArticleController :
public function show(Article $article)
{
$data = [
'title' => $article->title .'-'. config('app.name'),
'description' => $article->title.''. Str::words($article->content,10),
'articles' => $article,
];
return view('article.show',$data);
}
- La méthode utilise Route Model Binding , ce qui permet de récupérer directement une instance d’Article à partir de l’ID ou d’une autre clé.
- Un tableau $data est préparé pour transmettre des données spécifiques à la vue.
- La vue article.show est retournée avec les données.
Vue article Laravel: article/show.blade.php
La vue article/show.blade.php est conçue pour afficher les détails de l’article. Assurez-vous que le contenu est structuré de manière claire et attrayante.
Voici la vue article/show.blade.php qui affiche les détails de l’article :
@extends('layouts.main')
@section('content')
@include('includes/sidebar')
{{$article->title}}
{{$article->content}}
Par $article->user->id])}}">{{$article->user->name}} inscrit le {{$article->user->created_at->format('d/m/y')}}
{{$article->created_at->diffForHumans()}}
@stop
- L’article est affiché avec son titre et son contenu.
- Les détails de l’auteur et la date de création de l’article sont affichés avec des formats lisibles.
Optimiser URLs: getRouteKeyName et slugs
La méthode getRouteKeyName() permet de personnaliser la clé de recherche utilisée pour le Route Model Binding.
Ajoutez la méthode suivante dans le modèle Article :
public function getRouteKeyName()
{
return 'slug';
}
- Cette méthode permet de spécifier la clé de recherche utilisée par le Route Model Binding. Au lieu de rechercher un article par son id, Laravel utilisera le slug.
- Cela rend les URL plus descriptives, comme example.com/article/mon-article au lieu de example.com/article/1.
Résultat attendu
Lorsqu’un utilisateur accède à example.com/article/mon-article, il voit le titre, le contenu de l’article, le nom de l’auteur, la date de son inscription et la date de publication de l’article.
Exemple de rendu visuel :
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.
FAQ
Comment récupérer un article spécifique avec Laravel ?
Qu'est-ce que le Route Model Binding dans Laravel ?
Comment personnaliser la clé de recherche pour Route Model Binding ?
Comment afficher les détails d'un article dans une vue Laravel ?
Pourquoi utiliser un slug pour les URLs d'articles ?
Conclusion
En maîtrisant l’affichage d’articles avec Laravel, vous améliorez l’efficacité et la convivialité de votre application. Quels autres aspects de Laravel souhaiteriez-vous explorer pour enrichir vos compétences en développement web ?