What is Smarty?
Why use it?
Use Cases and Work Flow
Syntax Comparison
Template Inheritance
Best Practices
Crash Course
You may use the Smarty logo according to the trademark notice.
For sponsorship, advertising, news or other inquiries, contact us at:
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.
Example 7.4. foreach
{* este exemplo irá mostrar todos os valores da matriz $custid *} {foreach from=$custid item=curr_id} id: {$curr_id}<br> {/foreach}
MOSTRA:
id: 1000<br> id: 1001<br> id: 1002<br>
Example 7.5. foreach key
{* A key contém a chave para cada valor do loop A definição se parece com isso: $smarty->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}<br> {/foreach} {/foreach}
MOSTRA:
phone: 1<br> fax: 2<br> cell: 3<br> phone: 555-4444<br> fax: 555-3333<br> cell: 760-1234<br>
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 é usado para mostrar a interação atual do loop.
Iteration sempre começa em 1 e é incrementado um a um em cada interação.
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.