laravelbladeviewPemula3 mnt baca

Blade: Templating Engine Laravel

Tampilkan data di HTML dengan sintaks Blade: echo, escaping otomatis, dan komentar template.

Menampilkan data dengan aman

Blade adalah templating engine Laravel. File view disimpan di resources/views dengan ekstensi .blade.php. Cara menampilkan variabel:

blade
{{-- resources/views/posts/show.blade.php --}}
<h1>{{ $post->judul }}</h1>
<p>{{ $post->isi }}</p>
<p>Ditulis oleh {{ $post->penulis ?? 'Anonim' }}</p>

Kurung kurawal ganda {{ }} otomatis melakukan escaping HTML. Jadi kalau data berisi tag <script>, ia ditampilkan sebagai teks biasa, bukan dieksekusi. Ini perlindungan bawaan terhadap serangan XSS.

Kapan pakai {!! !!}

Kadang kamu memang ingin merender HTML mentah, misalnya konten dari rich text editor yang sudah kamu percaya:

blade
<div class="konten">
    {!! $post->isi_html !!}
</div>

Catatan teknis: {!! !!} berbahaya kalau datanya berasal dari input user tanpa sanitasi. Aturannya: pakai {{ }} sebagai default, dan {!! !!} hanya untuk HTML yang kamu kontrol penuh atau sudah dibersihkan dengan library seperti HTML Purifier.

Komentar Blade

Komentar Blade tidak ikut dirender ke HTML final, beda dengan komentar HTML biasa:

blade
{{-- Komentar ini hilang total di output, user tidak bisa lihat via view-source --}}

<!-- Komentar HTML ini tetap terkirim ke browser -->

Berguna untuk menonaktifkan blok template sementara tanpa meninggalkan jejak di source code halaman.

Akses data di view

Kamu bisa mengakses properti object, array, dan memanggil method langsung di Blade:

blade
<p>Total komentar: {{ $post->komentar->count() }}</p>
<p>Kategori: {{ $post['kategori'] }}</p>
<p>{{ strtoupper($post->judul) }}</p>

Helper PHP biasa tetap bisa dipakai di dalam {{ }}. Tapi ingat, view sebaiknya hanya menampilkan, bukan menghitung logika berat. Logika berat tetap di controller atau model.