2010-10-05 8 views
3

J'ai un tableau associatif et j'essaie d'obtenir le premier enregistrement avec smarty. En php, j'utilise le courant (array), mais smarty ne semble pas avoir de courant.Smarty actuel sur le tableau associatif

j'ai donc écrit le code ci-dessous

{if is_array($browseProducts.data) } 
    <ul class="products-grid"> 

     {foreach from=$browseProducts.data item=item} 
      {assign var='image' value=''} 
      {if is_array($item.images) } 
       {php} $image=current($item.images); {/php} 
      {/if} 
     {/foreach} 

    </ul> 
{/if} 

dans {php} courant de section (item.images $) donne Avertissement: courant() [function.current]: variable passée est pas un tableau ou un objet

La syntaxe est juste donc je suppose que les item.images de $ de Smarty ne peuvent pas être lus par {php}

Toute façon de passer à la section $ item.images {php}, ou quoi.

Une suggestion pour résoudre mon problème?

Répondre

2
{$item.images.0} 

doit renvoyer le premier élément du tableau $ item.images.

Alors:

{if is_array($browseProducts.data) } 
    <ul class="products-grid"> 

     {foreach from=$browseProducts.data item=item} 
      {assign var='image' value=''} 
      {if is_array($item.images) } 
       {$item.images.0} 
      {/if} 
     {/foreach} 

    </ul> 
{/if} 
12

Mais si les clés du tableau sont associatives? Vous pouvez également faire:

{$item.images|@current}