View
View
Control Structure
@if
Blade memiliki fitur-fitur yang sering dipakai ketika mengembangkan sebuah aplikasi. Salah satunya adalah if statement, dengan blade kita bisa menuliskan kode kondisional dengan lebih singkat dan rapi.
123456789101112@if($showSidebar === "left")
{{-- munculkan sidebar kiri --}}
<div> SIDEBAR KIRI! </div>
@elseIf($showSidebar === "right")
{{-- munculkan sidebar kanan --}}
<div> SIDEBAR KANAN! </div>
@else
{{-- jangan munculkan sidebar --}}
<div> TIDAK ADA SIDEBAR DITAMPILKAN </div>
@endifKode di atas tidaklah jauh berbeda dengan if statement pada PHP akan tetapi penulisannya lebih memudahkan karena tidak perlu kurung kurawal di setiap block kode statement. Jika nilai $showSidebar bernilai “left” maka tampilkan sidebar kiri, dan jika $showSidebar bernilai “right” tampilkan sidebar kanan, jika $showSidebar bernilai bukan “left” atau “right” tidak ada sidebar yang ditampilkan.
Perhatikan! kode yang diawali dengan “@” seperti @if, @endif dll disebut dengan “directive”.
@unless
@unless akan mengeksekusi kode block setelahnya, kecuali criteria yang dijadikan parameter terpenuhi.
123@unless( $status == “keren” )
Kamu belum keren
@endunlessKode blade di atas akan selalu memunculkan “Kamu belum keren” di layar kecuali nilai $status adalah “keren”. Akhiri blok kode @unless dengan @endunless.
@switch
Seperti switch pada PHP directive @switch digunakan untuk menuliskan kode kondisional dengan banyak kriteria.
123456789101112@switch($vote_status)
@case(0)
<div> Tidak Setuju </div>
@break
@case(1)
<div> Setuju </div>
@break
@default
<div> Anda belum melakukan voting </div>
@endswitchMengecek apakah sebuah variabel tersedia
Gunakan @isset untuk mengecek apakah sebuah variabel telah didefinisikan dan tidak bernilai NULL.
1234@isset($productList)
// kode view untuk menampilkan daftar produk jika $productList telah
// didefinisikan dan tidak bernilai NULL
@endissetAkhiri blok kode @isset dengan @endisset.
Mengecek apakah data kosong
Gunakan @empty untuk mengecek apakah sebuah variabel bernilai kosong (empty).
123@empty($productList)
// kode jika $productList empty
@endemptyAkhiri blok kode @empty dengan @endempty.
Mengecek apakah pengguna sudah login
Gunakan @auth untuk mengecek apakah pengguna yang sedang mengakses sudah login ke aplikasi Laravel kita.
123@auth
Selamat datang!
@endauthAkhiri @auth dengan @endauth. Kode yang ada di dalam block @auth hanya akan ditampilkan jika user telah login ke aplikasi.
Mengecek apakah pengguna belum login
Gunakan @guest untuk mengecek apakah pengguna yang sedang mengakses tidak login ke aplikasi. Kode yang ada didalam block @guest hanya akan ditampilkan ke user yang belum login.
123@guest
Hai, silahkan login terlebih dahulu jika sudah punya akun.
@endguestAkhiri @guest dengan @endguest
Penjelasan: Kita melakukan switch terhadap variabel @vote_status, apabila variabel tersebut bernilai 0, maka tampilkan div dengan teks “Tidak Setuju”, jika variabel @vote_status bernilai 1 tampilkan div dengan teks “Setuju” dan jika selain itu, defaultnya menampilkan div dengan teks “Anda belum melakukan voting
Menampilkan Kumpulan Data
Menampilkan kumpulan data dilakukan dengan perulangan dari variabel yang berupa array. Digunakan misalnya bila kita memiliki variabel $productList yang berisi 10 data product. Lalu kita ingin menampilkan masing-masing produk sebagai item.
@foreach
Pertama kita bisa gunakan directive @foreach. Directive ini membutuhkan variabel bertipe iterable, misalnya array dan minimal alias untuk masing-masing item didalamnya.
1234567@foreach($productList as $product)
// sekarang kita punya akses ke masing-masing produk sebagai $product
// di dalam $productList
// tampilkan masing-masing nama produk dari array $productList
{{ $product->name }}
@endforeachAkhiri directive @foreach dengan @endforeach
@forelse
Directive ini hampir mirip dengan @foreach, bedanya kita bisa menyisipkan directive @empty di tengah-tengah blok kode untuk menampilkan sesuatu jika ternyata arranya kosong.
123456789101112@forelse($productList as $product)
// sekarang kita punya akses ke masing-masing produk sebagai $product
// di dalam $productList
// tampilkan masing-masing nama produk dari array $productList
{{ $product->name }}
@empty
// jika kosong
<div>Belum ada produk</div>
@endforelseAkhiri directive @forelse dengan @endforelse.
@for
For digunakan untuk melakukan perulangan seperti halnya for pada PHP.
12345@for($i = 0; $i < 10 ; $++)
// kita akses nilai $i di sini
// nilai $i bernilai 1 sampai 10;
@endfor
@while
Seperti halnya for, directive @while juga memiliki fungsi yang sama dengan while pada PHP biasa.
Nested Loop
Nested loop merupakan perulangan di dalam perulangan. Hal ini seringkali terjadi ketika data yang dilakukan perulangan memiliki property berupa array yang bisa dilakukan perulangan lagi.
12345678910@foreach($productList as $product)
// nested tingkat 1 (parent)
{{$product->nama}}
Kategori:
@foreach($product->categories as $category)
// nested selanjutnya
{{$category->name}}
@endforeach
@endforeachLoop Variable
Ketika kita melakukan operasi perulangan (looping), Blade menyediakan variabel yang bisa diakses dalam setiap perulangan (iteration). Variabel tersebut antaralain
| Variable | Penjelasan |
|---|---|
| \$loop->index | Index perulangan saat ini. Mulai dari 0 |
| \$loop->iteration | Perulangan keberapa saat ini. Mulai dari 1 |
| \$loop->remaining | Berapa perulangan lagi sampai perulangan berhenti |
| \$loop->count | Berapa jumlah data yang dilakukan perulangan. Bernilai sama seperti panjang array. |
| \$loop->first | Mengecek apakah ini perulangan pertama |
| \$loop->last | Mengecek apakah ini perulangan terakhir |
| \$loop->depth | Tingkat nested loop. Apabila merupakan nested loop. |
| \$loop->parent | Ketika menggunakan nested loop. Akses parent loop. |
@php
Suatu ketika, kita mungkin perlu menyisipkan kode PHP seperti biasa pada template blade. Untuk melakukannya, kita bisa menggunakan directive @php seperti ini
12345@php //kode PHP di sini @endphp Akhiri directive @php dengan @endphp
Komentar
Posting Komentar