foreach,foreachelse Nome do Atributo Tipo Obrigatório Padrão Descrição from string Sim n/d O nome da matriz que você estará pegando os elementos item string Yes n/d O nome da variável que é o elemento atual key string Não n/d O nome da variável que é a chave atual name string Não n/d O nome do loop foreach para acessar as propriedades foreach Loops foreach são uma alternativa para loops section. foreach é usado para pegar cada elemento de uma matriz associativa simples. A sintaxe para foreach é muito mais simples do que section, mas tem a desvantagem de poder ser usada apenas para uma única matriz. Tags foreach devem ter seu par /foreach. Os parâmetros requeridos são from e item. O nome do loop foreach pode ser qualquer coisa que você queira, feito de letras, números e sublinhados. Loops foreach podem ser aninhados, e o nome dos loops aninhados devem ser diferentes um dos outros. A variável from (normalmente uma matriz de valores) determina o número de vezes do loop foreach. foreachelse é executado quando não houverem mais valores na variável from. foreach {/foreach} ]]> MOSTRA: id: 1001
id: 1002
]]>
foreach key assign("contacts", array(array("phone" => "1", "fax" => "2", "cell" => "3"), array("phone" => "555-4444", "fax" => "555-3333", "cell" => "760-1234"))); *} {foreach name=outer item=contact from=$contacts} {foreach key=key item=item from=$contact} {$key}: {$item}
{/foreach} {/foreach} ]]>
MOSTRA: fax: 2
cell: 3
phone: 555-4444
fax: 555-3333
cell: 760-1234
]]>
Loop foreach também tem as suas próprias variáveis para manipilar as propriedades foreach. Estas são indicadas assim: {$smarty.foreach.foreachname.varname} com foreachname sendo o nome especificado no atributo name do foreach. iteration iteration é usado para mostrar a interação atual do loop. Iteration sempre começa em 1 e é incrementado um a um em cada interação. first first é definido como true se a interação atual do foreach for a primeira. last last é definido como true se a interação atual do foreach for a última. show show é usado como parâmetro para o foreach. show é um valor booleano, true ou false. Se false, o foreach não será mostrado. Se tiver um foreachelse presente, este será alternativamente mostrado. total total é usado para mostrar o número de interações do foreach. Isto pode ser usado dentro ou depois do foreach.