Contexte de demande de passage dans les modèles Go
Dans les modèles HTML Go, l'accès aux informations de la requête qui a déclenché son exécution n'est pas simple. Cela peut être problématique lorsque vous devez appliquer une logique conditionnelle basée sur les attributs de l'utilisateur, par exemple pour déterminer si un utilisateur est un administrateur.
Pour relever ce défi, l'approche privilégiée consiste à utiliser le mécanisme de pipeline de données. En intégrant le contexte de la demande dans la structure de données de votre modèle, vous pouvez accéder aux informations spécifiques à la demande dans le modèle.
Par exemple, disons que vous souhaitez afficher un lien vers un « bouton nucléaire » restreint uniquement si l'utilisateur est un administrateur. Dans ce cas, vous pouvez structurer les données de votre modèle comme suit :
<code class="go">type TemplateData struct { Content *Content Context *Context IsUserAdmin bool }</code>
Dans votre modèle, vous pouvez ensuite utiliser la variable IsUserAdmin pour afficher le lien de manière conditionnelle :
<code class="html">{{if IsUserAdmin}} <a href="/admin/nuke">Go to the big red nuclear button</a> {{end}}</code>
Cette approche transmet efficacement les informations spécifiques à la demande dans le modèle sans mélanger la logique dans la vue. Il permet de conserver la séparation entre le contrôleur, qui gère la logique de l'application, et le modèle, qui gère le rendu.
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!