{foreach},{foreachelse}
{foreach} dipakai untuk mengulang terus-menerus melalui array asosiatif juga array-diindeks secara numerik, tidak seperti {section} yang untuk mengulang melalui hanya array-diindeks secara numerik. Sintaks untuk {foreach} jauh lebih mudah daripada {section}, tapi sebagai imbalannya hanya bisa dipakai untuk array tunggal. Setiap tag {foreach} harus dipasangkan dengan tag {/foreach} penutup.
Attribute Name | Type | Required | Default | Description |
---|---|---|---|---|
from | array | Yes | n/a | Array yang anda ulang terus |
item | string | Yes | n/a | Nama variabel yang jadi elemen saat ini |
key | string | No | n/a | Nama variabel yang saat ini jadi kunci |
name | string | No | n/a | Nama perulangan foreach untuk mengakses properti |
Atribut yang diperlukan adalah from dan item.
Name dari pengulangan {foreach} bisa apa saja yang anda sukai, terdiri dari huruf, angka dan garis bawah, seperti variabel PHP.
Pengulangan {foreach} bisa diulang terus, dan nama {foreach} yang diulang harus unik dari yang lain.
Atribut from, biasanya sebuah array nilai, menetapkan jumlah berapa kali {foreach} akan diulang.
{foreachelse} dijalankan ketika tidak ada nilai dalam variabel from.
Pengulangan {foreach} juga memiliki variabelnya sendiri yang menangani properti. Ini diakses dengan: {$smarty.foreach.name.property} dengan "name" menjadi atribut name.
Catatan: Atribut name hanya diperlukan saat anda ingin mengakses properti {foreach}, tidak seperti {section}. Mengakses properti {foreach} dengan name tidak terdefinisi tidak menimbulkan kesalahan, tapi sebaliknya mengakibatkan hasil yang tidak diinginkan.
Properti {foreach} adalah index, iteration, first, last, show, total.
Teladan 7-6. Mendemonstrasikan atribut item dan key
Template untuk ditampilkan $myArray sebagai pasangan kunci/nilai, seperti foreach PHP.
Contoh di atas akan menampilkan:
|
Teladan 7-8. {foreach} dengan pengulangan item dan key Menempatkan array ke Smarty, kunci berisi kunci untuk setiap nilai yang diulang.
Template yang menampilkan $contact.
Contoh diatas akan menampilkan:
|
Teladan 7-9. Contoh database dengan {foreachelse} Contoh database (seperti PEAR atau ADODB) dari naskah pencarian, hasil query ditempatkan ke Smarty
Template yang menampilkan "None found" jika tidak ada hasil dengan {foreachelse}.
|
.iteration
iteration berisi iterasi perulangan saat ini dan selalu dimulai dari satu, tidak seperti indeks. Ia bertambah satu setiap kali iterasi.