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>
@endif

Kode 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
@endunless

Kode 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>
@endswitch

Mengecek 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
@endisset

Akhiri 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
@endempty

Akhiri 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!
@endauth

Akhiri @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.
@endguest

Akhiri @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 }}
@endforeach

Akhiri 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>

@endforelse

Akhiri 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
@endforeach

Loop Variable

Ketika kita melakukan operasi perulangan (looping), Blade menyediakan variabel yang bisa diakses dalam setiap perulangan (iteration). Variabel tersebut antaralain

VariablePenjelasan
\$loop->indexIndex perulangan saat ini. Mulai dari 0
\$loop->iterationPerulangan keberapa saat ini. Mulai dari 1
\$loop->remainingBerapa perulangan lagi sampai perulangan berhenti
\$loop->countBerapa jumlah data yang dilakukan perulangan. Bernilai sama seperti panjang array.
\$loop->firstMengecek apakah ini perulangan pertama
\$loop->lastMengecek apakah ini perulangan terakhir
\$loop->depthTingkat nested loop. Apabila merupakan nested loop.
\$loop->parentKetika 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

Postingan populer dari blog ini

Puisi : Kerendahan Hati

Apa itu BMR, NEAT, EAT, TEF dan TDEE?

Kecerdasan: Dari Data Hingga Kebijaksanaan