Maison  >  Article  >  développement back-end  >  Comment puis-je accéder au contexte de la demande dans les modèles Go ?

Comment puis-je accéder au contexte de la demande dans les modèles Go ?

DDD
DDDoriginal
2024-10-26 11:15:29818parcourir

How Can I Access Request Context in Go Templates?

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn