Comment utiliser la liaison du modèle de route dans un contr?leur?
Jun 12, 2025 pm 08:13 PML'utilisation de la liaison du modèle de routage dans Laravel analyse automatiquement les instances du modèle pour éviter les requêtes manuelles. La liaison implicite obtient automatiquement le modèle en correspondant au nom du paramètre de route et à l'invite de type; La liaison explicite permet une logique d'analyse personnalisée, comme l'utilisation de Slug au lieu de l'ID; Tapez directement l'incitation du modèle dans la méthode du contr?leur peut utiliser des instances de liaison; Des contraintes supplémentaires telles que la vérification de la propriété peuvent être gérées via un middleware ou une logique de liaison personnalisée.
Dans Laravel, l'utilisation de la liaison du modèle de route dans un contr?leur est un moyen propre et efficace d'injecter des instances de modèle directement dans vos itinéraires. Au lieu de récupérer manuellement les modèles par leur ID à partir de la demande, Laravel peut les résoudre automatiquement en fonction du paramètre de route. Cela rend non seulement votre nettoyage de code, mais contribue également à prévenir le passe-partout inutile.
Comprendre l'implicite vs liaison du modèle de route explicite
Il existe deux types de liaison du modèle de route dans Laravel: implicite et explicite .
Liaison implicite : Laravel résout automatiquement le modèle par le nom du paramètre de route. Par exemple, si votre itinéraire est
/posts/{post}
, et que votre type de méthode de contr?leur affichePost $post
, Laravel va récupérer le modèle POST avec l'ID de correspondance de la base de données.Liaison explicite : vous définissez comment Laravel doit résoudre un paramètre de route donné. Ceci est utile lorsque vous souhaitez utiliser une colonne différente (comme une limace) au lieu de l'
id
par défaut. Vous le configriez généralement dans la méthodeboot
de votreRouteServiceProvider
.
Voici comment les deux fonctionnent:
-
Avec une liaison implicite:
Route :: Get ('/ Posts / {post}', [PostController :: class, 'show']);
Et dans votre contr?leur:
salon de la fonction publique (post $ post) { Return View ('Posts.show', compact ('post')); }
Si vous utilisez des limaces ou un autre champ:
Route :: Get ('/ Posts / {Slug}', [PostController :: class, 'show']);
Vous auriez besoin de le lier explicitement:
Utiliser illuminate \ support \ FACADES \ Route;
Fonction publique boot () {Route :: Model ('Slug', \ App \ Models \ Post :: class); }
### Utilisation de la liaison du modèle de route dans les contr?leurs Une fois que vous avez défini correctement vos itinéraires, l'utilisation du modèle lié dans vos méthodes de contr?leur devient simple. Il suffit de faire fonctionner le modèle dans la signature de la méthode comme tel: `` `PHP Edit de fonction publique (post $ post) { return View ('Posts.edit', compact ('post')); }
Laravel rapportera automatiquement l'instance pour vous. Vous pouvez ensuite l'utiliser directement - pas besoin d'appeler Post::find()
ou similaire.
Quelques conseils pratiques:
- Assurez-vous que le nom de la variable dans l'itinéraire (
{post}
) correspond au nom du paramètre introduit dans le contr?leur ($post
). Sinon, Laravel ne pourra pas le lier. - Si aucun modèle n'est trouvé, Laravel lancera automatiquement une exception 404 - pas besoin de vérifier les Nulls, sauf si vous souhaitez un comportement personnalisé.
- Vous pouvez toujours accéder à d'autres données de demande via l'objet
Request
même en utilisant la liaison du modèle.
Manipulation de la portée et de la logique de résolution personnalisée
Parfois, vous voudrez peut-être étendre davantage la requête du modèle - par exemple, en vous assurant qu'un utilisateur possède une ressource spécifique avant de leur permettre de la modifier.
Une approche commune consiste à combiner middleware avec la liaison du modèle:
Mise à jour de la fonction publique (demande $ demande, post $ post) { // Tout d'abord, vérifiez la propriété if ($ post-> user_id! == $ request-> user () -> id) { Aborter (403, ?Action non autorisée?); } // Procéder avec la logique de mise à jour ... }
Alternativement, vous pouvez personnaliser comment Laravel résout le modèle en utilisant la logique de résolution personnalisée dans votre fournisseur de services:
Route :: bind ('post', fonction ($ value) { return \ app \ modèles \ poster :: where ('id', $ value) -> premierorfail (); });
Cela vous donne un contr?le total sur la fa?on dont les modèles sont récupérés - à portée de main si vous souhaitez désigner des relations de chargement ou appliquer des contraintes supplémentaires pendant la résolution.
C'est le c?ur de la fa?on d'utiliser la liaison du modèle de route dans les contr?leurs. Il est puissant une fois que vous vous êtes habitué au motif, et cela réduit vraiment le code relatif. Assurez-vous simplement que votre dénomination reste cohérente et n'oubliez pas de gérer les cas de bord comme les vérifications de la propriété séparément.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

Article chaud

Outils chauds

Bloc-notes++7.3.1
éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Depuis que Windows est devenu la plate-forme de jeu de choix, il est encore plus important d'identifier ses fonctionnalités orientées jeux. L'un d'eux est la possibilité de calibrer une manette Xbox One sur Windows 11. Grace à l'étalonnage manuel intégré, vous pouvez vous débarrasser des problèmes de dérive, de mouvement aléatoire ou de performances et aligner efficacement les axes X, Y et Z. Si les options disponibles ne fonctionnent pas, vous pouvez toujours utiliser un outil tiers d'étalonnage du contr?leur Xbox One. Découvrons-le?! Comment calibrer ma manette Xbox sous Windows 11 ? Avant de continuer, assurez-vous de connecter votre manette à votre ordinateur et de mettre à jour les pilotes de votre manette Xbox One. Pendant que vous y êtes, installez également toutes les mises à jour de micrologiciel disponibles. 1. Utilisez le vent

Apprendre Laravel à partir de zéro?: explication détaillée de l'invocation de la méthode du contr?leur Dans le développement de Laravel, le contr?leur est un concept très important. Le contr?leur sert de pont entre le modèle et la vue, responsable du traitement des demandes des itinéraires et du renvoi des données correspondantes à la vue pour affichage. Les méthodes des contr?leurs peuvent être appelées par des routes. Cet article présentera en détail comment écrire et appeler des méthodes dans les contr?leurs et fournira des exemples de code spécifiques. Tout d’abord, nous devons créer un contr?leur. Vous pouvez utiliser l'outil de ligne de commande Artisan pour créer

PHP est un langage de programmation très populaire et CodeIgniter4 est un framework PHP couramment utilisé. Lors du développement d'applications Web, l'utilisation de frameworks est très utile. Elle peut accélérer le processus de développement, améliorer la qualité du code et réduire les co?ts de maintenance. Cet article expliquera comment utiliser le framework CodeIgniter4. Installation du framework CodeIgniter4 Le framework CodeIgniter4 peut être téléchargé depuis le site officiel (https://codeigniter.com/). Vers le bas

Dans Laravel, un contr?leur (Controller) est une classe utilisée pour implémenter certaines fonctions ; le contr?leur peut combiner la logique de traitement des requêtes associée dans une classe distincte. Certaines méthodes sont stockées dans le contr?leur pour implémenter certaines fonctions. Le contr?leur est appelé via le routage, et les fonctions de rappel ne sont plus utilisées ; le contr?leur est stocké dans le répertoire ? app/Http/Controllers ?.

Dans le guide d'apprentissage Laravel, l'appel des méthodes du contr?leur est un sujet très important. Les contr?leurs servent de pont entre le routage et les modèles et jouent un r?le essentiel dans l'application. Cet article présentera les meilleures pratiques en matière d’appel de méthode de contr?leur et fournira des exemples de code spécifiques pour aider les lecteurs à mieux comprendre. Commen?ons par comprendre la structure de base des méthodes de contr?leur. Dans Laravel, les classes de contr?leurs sont généralement stockées dans le répertoire app/Http/Controllers. Chaque classe de contr?leur en contient plusieurs.

Dans le framework Yii, les contr?leurs jouent un r?le important dans le traitement des requêtes. En plus de gérer les requêtes de pages régulières, les contr?leurs peuvent également être utilisés pour gérer les requêtes Ajax. Cet article expliquera comment gérer les requêtes Ajax dans le framework Yii et fournira des exemples de code. Dans le framework Yii, le traitement des requêtes Ajax peut s'effectuer à travers les étapes suivantes : La première étape consiste à créer une classe contr?leur (Controller). Vous pouvez hériter de la classe de contr?leur de base yiiwebCo fournie par le framework Yii

Le framework Symfony est un framework PHP populaire con?u sur la base de l'architecture MVC (Model-View-Controller). Dans Symfony, les contr?leurs sont l'un des composants clés responsables du traitement des requêtes des applications Web. Les paramètres des contr?leurs sont très utiles lors du traitement des requêtes. Cet article explique comment utiliser les paramètres du contr?leur dans le framework Symfony. Connaissance de base des paramètres du contr?leur Les paramètres du contr?leur sont transmis au contr?leur via le routage. Le routage est un mappage des URI (Uniform Resource Identifiers) aux contr?leurs et

Comment coupler une manette Xbox et des accessoires à distance Cliquez sur le panneau ??Accessoires Xbox?? dans le tableau de bord Xbox Home. Ce panneau vous mènera à votre manette Xbox, qui affichera une nouvelle option appelée ? Connecter un appareil ?. Cliquez dessus. Ici, vous serez sur un nouveau panneau qui vous permettra de coupler facilement votre manette Xbox et vos accessoires. Vous pouvez sélectionner n’importe quelle option préférée, puis coupler l’appareil à partir de ce menu. Veuillez noter que cette fonctionnalité n'est pas encore disponible sur les serveurs Xbox live, mais elle le sera bient?t sur le tableau de bord Xbox.
