2012-06-19 6 views
1

Je veux juste savoir comment accéder à un tableau dans SMARTY qui ont généré l'index via smarty. Je veux y accéder plus tard.clé de tableau dynamique dans smarty

Quelque chose comme ceci:

{if $smarty.get.{param_{$k.id}_{$p.num}} eq $key} 

et j'aime accéder $smarty.get.(dynamic generated index)

essayé variations de couple, mais il n'a pas eu de chance.

+0

travaille en ce moment. Quand j'aurai une réponse, je l'accepterai. –

+0

avez-vous essayé {$ smarty.get [$ your_var]}? – madfriend

+0

@neosatan Vérifie ma réponse. –

Répondre

2

Vous pouvez utiliser une variable pour les index, mais vous ne pouvez pas créer de chaîne comme vous l'avez essayé. Essayez de créer une variable personnalisée avant:

{$myIndex = "param_{$k.id}_{$p.num}"} 
{if $smarty.get.$myIndex eq $key} 
    ... 

Cela devrait fonctionner.

+0

Il ne donne pas d'erreur, mais var semble être vide ... Je dois vérifier si j'ai une sorte d'erreur dans mon code. –

+0

Fonctionne comme un charme. Je veux toujours savoir pourquoi quand je construis une chaîne à l'extérieur ça va bien, mais quand je veux construire une chaîne dans l'index réel, ça échoue. –

+0

Je pense que c'est par conception. Votre code n'est pas valide syntaxe Smarty. –

0

Cela fonctionne aussi

{if $smarty.get["param_{$k.id}_{$p.num}"] eq $key} 
    ... 
1

Dans mon cas, je solution Unloco et essayé d'accéder directement contenu du tableau (sans instruction if) avec la clé dynamique et il fonctionne parfaitement:

{$arr1["column_{$arr2.month}_price"]} 
+0

Confirmé, dans PS 1.6.1.12 '{$ myVar [" keybase _ {$ i} "]}' fonctionne. –