2009-11-22 8 views
4

Salut, je suis en train de faire concaténation dans smarty. Voici un exemple de la façon dont j'aimerais utiliser le code. Le php attribueSmarty Concatenation

$smarty->assign('myvar',array(1,5,6,4)); 
$smarty->assign('myvar2',array('a1'=>1,'a2'=>2,'a3'=>3,'a4'=>4)); 

Et la page du modèle

{foreach from=$myvar item=v} 
    {if $v == $myvar2.a+$v} 
    match 
    {else} 
    no match  
    {/if} 
{/foreach} 

Cela devrait écrire « match » deux fois et « aucune correspondance » deux times.But écrit à la place Regroupez quatre fois ce qui n'a aucun sens pour moi .

Merci

Répondre

7

interpoler la clé avant de l'utiliser:

{foreach from=$myvar item=v} 
{assign var="idx" value="a"|cat:$v} 
{if $v == $myvar2.$idx} 
    match 
{else} 
    no match 
{/if} 
{/foreach} 
+0

merci qui a travaillé – andrew

0

Je pense que le problème peut être l'approche. Vous devriez inclure votre logique dans le code PHP, pas dans le modèle.