Digitalmapia adalah situs dimana semua orang bisa menulis artikelnya sendiri. Klik "Login/Register untuk masuk, lalu klik "Tulis Artikel" untuk mulai menulis.

Bekerja dengan blade templating pada Laravel

Laravel adalah sebuah Framework yang menggunakan arsitektur MVC, Model-View-Controller. View merupakan sebuah bagian dari MVC yang mengatur bagaimana sebuah halaman web ditampilkan. Namun, bukan berarti pada view kita tidak bisa menampilkan logic bahasa pemrograman. Bahkan, pada kebanyakan kasus logic tersebut sangat perlu untuk digunakan. Disinilah blade templating cukup membantu dalam menulis logic tersebut agar lebih simple.

Selain itu, blade templating juga cukup bermanfaat ketika kita ingin memisahkan layout utama dengan layout pada halaman-halaman tertentu.

Alasan menggunakan blade templating engine

Diatas telah saya sebutkan manfaat menggunakan blade templating. Namun, sebenarnya tanpa menggunakan blade templating pun kita bisa menulis logic dengan menggunakan syntax php biasa pada view. Secara umum, fungsi dari blade templating hanyalah untuk membuat kode program pada bagian view menjadi lebih simple, rapi dan elegant. Jadi daripada menuliskan kode program seperti ini:

	<h1>Hello <?php echo $name; ?>!</h1>

Lebih baik menuliskannya dengan versi blade templating seperti ini:

	<h1>Hello {{ $name }}</h1>

Lebih simple bukan? Yeah, memang lebih simple. Namun, memang terdapat beberapa kelemahan dari templating engine seperti ini. Setiap kali anda menjalankan program, template yang anda buat akan diterjemahkan ke ke dalam kode php bisa sehingga aplikasi sedikit lebih berat meskipun tidak terlalu berarti. Misalnya, {{ $name }} akan diterjemahkan menjadi <?php echo $name ?>.

Namun, meskipun terdapat beberapa kelemahan, saya masih tetap memilih untuk menggunakannya karena syntax php biasa tampak tidak rapi jika dicampur dengan HTML.

Ayo kita nge-blade

Blade templating memungkinkan kita untuk memisahkan bagian kode program, menggunakan view lain sebagai layout, melakukan echo tanpa syntax php, menggunakan if else, melakukan include dan melakukan looping.

Looping

Ketika ingin menampilkan array dalam bentuk list kita biasanya menggunakan foreach. Berikut adalah contoh penggunaan foreach jika menggunakan blade:

<ul>
  @foreach ($users as $user)
  <li>{{ $user->name }}</li>
  @endforeach
</ul>

Pada blade templating, kita juga bisa menggunakan for dan while, sebagai berikut:

@for ($i = 1; $i < 100; $i++)
  <li>{{ $i }} ... </li>
@endfor
@while (true)
  <p>Tulisan ini akan diulang-ulang.</p>
@endwhile

Menggunakan if-else

Dalam aplikasi yang anda buat, terkadang anda perlu menyisipkan logika if-else pada bagian view. Dengan menggunakan blade, if-else menjadi lebih simple. Berikut adalah contoh penggunaan if-else dengan menggunakan blade templating:

@if ($egg == 1)
  You have one egg
@elseif ($egg > 1)
  You have {{ $egg }} eggs
@else
  You don't have any eggs
@endif

Selain if-else kita juga bisa menggunakan unless, yaitu suatu perintah akan dijalankan jika suatu kondisi tidak terpenuhi:

@unless (Auth::check())
  {{ "Anda sedang tidak login" }}
@endunless

Pada contoh diatas, apabila Auth::check() bernilai false, maka tulisan "anda sedang tidak login" akan ditampilkan.

Menggunakan layout

Misalnya, anda memiliki view bernama layout.blade.php. Dimana view ini digunakan sebagai layout dari view yang lain dengan nama user.blade.php. Isi dari layout.blade.php adalah sebagai berikut:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8" />
  <title>my app</title>
</head>
<body>

  @yield('content')

</body>
</html>

Kemudian, untuk menggunakan layout diatas pada view user.blade.php, isi file user.blade.php sebagai berikut:

@extends('layout')

@section('content')
	
	<p>Tulisan ini diletakan di dalam content</p>

@stop

Perhatikan pada layout.blade.php terdapat syntax @yield('content') sedangkan pada pada user.blade.php terdapat @section('content'). Kedua syntax ini saling berhubungan, dimana semua kode yang disimpan di dalam @section('content') akan ditampilkan pada @yield('content').

Menggunakan includes

Terakhir, untuk melakukan include view di dalam view yang lain anda bisa menggunakan tag sebagai berikut:

	@include('nama.view')

Ini sangat berguna ketika anda ingin menggunakan view yang bersifat parsial. Dimanapun anda ingin menampilkannya, cukup include saja view tersebut dan beres.

Sampai disini, anda sudah tahu cara menggunakan blade templating pada Laravel. Blade templating hanya membantu anda dalam menangani syntax yang sering dipakai. Dalam beberapa kasus, terkadang anda harus menggunakan syntax bawaan php untuk menyelesaikan sebuah tampilan program. Disini blade templating tidak banyak membantu. Namun demikian, penggunaan blade templating masih tetap disarankan untuk tampilan program yang lebih rapi.

Semoga bermanfaat.

Laravel Wallpapper
  • Hokki Putra Andika

    salam…
    gan saya mau tanya.. kalau include controller bisa gak???
    sidebar dan content memiliki controller yang berbeda..
    atau agan punya solusi lain agar script php untuk content dan script php untuk sidebar itu berbeda…
    terimakasih sebelumnya..

    • http://digitalmapia.com/ digitalmapia

      Pake Layout Gan.. 😀