Belajar Laravel (Chapter 11 | Tutorial Blade Templates)
Untuk tutorial views dan views menggunakan blade template kita bagi menjadi dua ya, karena untuk menggunakan views pada laravel tidak harus menggunakan blade template.
Scope of This Chapter
Pada tutorial ini kita akan membahas tentang Blade template.
Blade
Blade merupakah template views yang sudah disediakan oleh Laravel, dengan menggunakan blade maka pembuatan views akan dimudahkan. File blade menggunakan extension .blade.php dan disimpan pada folder resources/views. Semua file blade ini akan di compile menjadi file kode PHP dan cache yang disimpan pada folder storage/framework/views. Blade menggunakan symbol @ yang disebut directive seperti @if @else.
Menampilkan Data
Kita bisa menampilkan data yang akan ditampilkan pada blade dengan menulis variable dalam curly braces.
Syntax untuk menampilkan data bisa menggunakan {{ }} (double curly braces). Syntax ini akan dicompile menjadi <?php echo ;?> pada file cache view.
- Tambah kode berikut pada route:
<!-- tambahkan kode di file routes/web.php -->
Route::get(‘/post’, function () {
return view(‘post’, ['title' => 'Tegal kota Bahari']);
});
2. Kemudian buat file blade berikut
<!-- View simpan di folder resources/views/post.blade.php --><html>
<body>
<h1>Title : {{ $title }}</h1>
</body>
</html>
3. Lihat file cache view di folder storage/framework/views/encrypt.php
<html>
<body>
<h1>Title : <?php echo e($title); ?></h1>
</body>
</html><?php /**PATH /var/www/html/latihan/blog/resources/views/post.blade.php ENDPATH**/ ?>
Jadi, syntax {{ $title }} akan dicompile menjadi syntax
<?php echo e($title); ?>
Function e()
Function e() merupakan helper Laravel yang menjalankan function htmlspecialchars yang dapat convert semua karakter menjadi HTML entities. Jadi website akan aman dari serangan XSS.
echo e(‘<html>Makan</html>’);// <html>Makan</html>
Pada template Blade juga bisa menjalankan function dari helper laravel atau dari PHP seperti time(), date()
{{ date("Y-m-d H:i:s") }}
{{ time() }}
Menampilkan Unescaped Data
Jika kita ingin menampilan unescaped data, bisa menggunakan syntax:
- Tambah kode berikut pada route:
<!-- tambahkan kode di file routes/web.php -->
Route::get(‘/post’, function () {
return view(‘post’, ['title' => '<script>Tegal kota</script>']);
});
2. Kemudian buat file blade berikut
<!-- View simpan di folder resources/views/post.blade.php --><html>
<body>
<h1>Title : {!! $title !!}</h1>
</body>
</html>
3. Lihat file cache view di folder storage/framework/views/encrypt.php
<html>
<body>
<h1>Title : <?php echo $title; ?></h1>
</body>
</html>
<?php /**PATH /var/www/html/latihan/blog/resources/views/post.blade.php ENDPATH**/ ?>
Jadi, syntax {!! $title !!} akan dicompile menjadi syntax
<?php echo $title; ?>
Tanpa menjalankan function htmlspecialchars
Rendering JSON
Terkadang kita ingin menampilkan JSON array ke view untuk value javascript variable:
<script>
var app = <?php echo json_encode($array); ?>;
</script>
atau menggunakan directive Blade @json sebagai pengganti function json_encode:
<script>
var app = @json($array);
var app = @json($array, JSON_PRETTY_PRINT);
</script>
Ane saranin set value pada variable javascript menggunakan Ajax Request :D
Control Structures
Pada blade juga di sediakan shortcuts umum yang ada pada PHP control structures.
If Statements
Contoh if statements menggunakan @if, @elseif, @else, @endif directives.
$records = 2;@if (count($records) === 1)
I have one record!
@elseif (count($records) > 1)
I have multiple records!
@else
I don't have any records!
@endif
Unless
Terdapat directive @unless digunakan untuk menampilkan data jika statement berisi not true atau tidak valid.
@unless ($login == true)
Kamu sedang tidak login.
@endunless----@unless ($login == false)
Kamu sedang login.
@endunless
isset & empty
@isset($title)
// $title is defined and is not null...
@endisset
@empty($title)
// $title is "empty"...
@endempty
Next Chapter
Middleware : https://medium.com/dotlocal/belajar-laravel-chapter-12-tutorial-middleware-afb21dfacd8e
Support the Author
Jika suka dengan artikel ini, bisa support saya ditautan berikut ini https://karyakarsa.com/tobidsn :)
Cheers
Tobi Ahmad
Founder of Dot Local