Maison  >  Article  >  développement back-end  >  Comment renvoyer false par défaut si la propriété n'existe pas dans le fichier values.yaml ?

Comment renvoyer false par défaut si la propriété n'existe pas dans le fichier values.yaml ?

WBOY
WBOYavant
2024-02-09 08:51:11379parcourir

如果values.yaml 文件中不存在属性,如何返回默认 false?

L'éditeur PHP Youzi est là pour répondre à une question courante : "Si l'attribut n'existe pas dans le fichier values.yaml, comment renvoyer la valeur false par défaut ?" fichier yaml pour définir les paramètres de configuration. Lorsque nous voulons obtenir la valeur d'un certain attribut, si l'attribut n'existe pas dans le fichier values.yaml, nous pouvons utiliser certaines méthodes pour renvoyer la valeur par défaut. Voici quelques solutions courantes.

Contenu de la question

fichier yaml. J'ai une valeur définie sous global comme indiqué ci-dessous

global:
  logging:
    log4j:
     enabled: true

J'ai aussi une fonction auxiliaire

{{- define "helm-basic-template.logging-enabled" -}}
{{ .Values.global.logging.log4j.enabled | default "false" }}
{{- end -}}

La propriété global.logging.log4j.enabled peut ne pas exister, auquel cas je souhaite que la fonction d'assistance renvoie false, sinon renvoie la valeur de la propriété. Mais cela ne fonctionne pas comme je l'espérais. Une idée de ce qui ne va pas avec ma fonction ? Ou existe-t-il une autre meilleure façon de le réécrire ? Merci

Solution

Pour éviter que les variables ne soient indéfinies, des vérifications supplémentaires sont requises ici.

Selon la documentation Helm, lorsque l'objet est vide, l'instruction if renvoie false.

Le tuyau sera évalué à faux si la valeur est : 

  • Valeur booléenne fausse
  • Numéro Zéro
  • chaîne vide
  • nil (vide ou nul)
  • Collection vide (carte, tranche, tuple, dictionnaire, tableau)

Utilisez directement le chèque ci-dessous.

{{- if .Values.global }}
{{- if .Values.global.logging }}
{{- if .Values.global.logging.log4j }}
{{- if .Values.global.logging.log4j.enabled }}
apiVersion: v1
kind: ConfigMap
metadata:
  name: logging-cm
data:
  conf.json: |
    xxxxx
...
{{- end }}
{{- end }}
{{- end }}
{{- end }}

Ou utilisez la méthode du modèle nommé.

{{- define "helm-basic-template.logging-enabled" -}}
{{- $val := false }}
{{- if .Values.global -}}
{{- if .Values.global.logging -}}
{{- if .Values.global.logging.log4j -}}
{{- if .Values.global.logging.log4j.enabled -}}
{{- $val = true }}
{{- end -}}
{{- end -}}
{{- end -}}
{{- end -}}
{{ $val }}
{{- end -}}

Ou utilisez default pour définir une simple valeur par défaut.

{{- define "helm-basic-template.logging-enabled" -}}
{{- .Values.global.logging.log4j.enabled | default false .Values.global.logging.log4j.enabled -}}
{{- end -}}

Ou utilisez dig pour sélectionner une clé dans une liste de valeurs. p>

{{- define "helm-basic-template.logging-enabled" -}}
{{- dig "logging" "log4j" "enabled" false .Values.global -}}
{{- end -}}

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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer
Article précédent:Variable nommée struct en goArticle suivant:Variable nommée struct en go