Test des champs valides dans les modèles Go
Dans le package base de données/sql de Go, les structures Null[Type] aident à mapper les valeurs de la base de données avec des valeurs nulles potentielles en code. Déterminer si un champ struct est nul, c'est-à-dire si sa propriété Valid est fausse, peut être difficile.
Pour afficher un champ SQL, utilisez la propriété .Value :
<code class="go">{{ .MyStruct.MyField.Value }}</code>
Lorsque vous avez besoin de plus comparaisons complexes, tester la validité du champ devient important. L'utilisation de if avec .Value seul entraîne des erreurs si .MyField n'est pas valide.
Les tentatives pour tester l'existence d'un champ valide à l'aide des fonctions de modèle et et ou échouent également. L'évaluation ne se termine pas prématurément même si le résultat est clair dès le premier argument.
Envisagez plutôt d'utiliser des blocs if imbriqués :
<code class="go">{{if $.MyStruct.MyField}} {{if eq $.MyStruct.MyField.Value .}}selected="selected"{{end}} {{end}}</code>
Alternativement, le bloc with peut être utilisé, mais il modifie le contexte du modèle actuel :
<code class="go">{{range .SomeSlice}} {{with $.MyStruct.MyField}} {{if eq .Value .}}selected="selected"{{end}} {{end}} {{/range}}</code>
Notez que les types sql.NullXX sont des structures non nulles. Pour déterminer si leur méthode Value renverra une valeur non nulle, vérifiez leur champ Valide :
<code class="go">{{if $.MyStruct.MyField.Valid}} {{if eq $.MyStruct.MyField.Value .}}selected="selected"{{end}} {{end}}</code>
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!