Belajar Laravel - Basic Blade

 

Pada framework Laravel terdapat template engine yang bernama, BLADE 

sama hal nya seperti template engine lainnya yang ada di dalam python.

Sekarang kita akan belajar bagaimana BLADE itu bekerja

  1. Pertama buka folder resources > buka folder views
  2. Buat file baru dengan nama file bebas dengan syarat menggunakan ektensi file ".blade.php"
  3. Dengan contoh saya membuat file dengan nama "contoh.blade.php"

Isi file tersebut dengan html biasa 

Sekarang kita buat Route nya untuk mengarahkan halaman "/contoh"

  1. Buka file Route, buka file web.php
  2. Ketikkan sintaks


 Untuk melihat hasilnya buka "http://127.0.0.1:8000/contoh"

Hasilnya akan seperti ini


Sekarang kita akan membuat template/cetakan halaman untuk semua halaman di dalam Laravel

Bagaimana caranya?

  1. Pertama buat folder baru didalam views "layouts"
  2. Pisahkan semua component menjadi beberapa bagian, dengan contoh: "Main Layout", "Home", "About"
  3. Dari struktur component diatas "Main Layout" sebagai template utama/blueprint, sistem ini dinamakan Templating Layout atau juga Pewarisan Komponen 
  4. Buat file "Mainlayout.blade.php" dengan isi seperti berikut
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Laravel 10 | {{ $title }}</title>
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
</head>
<body>
    <nav class="navbar-1-1 navbar navbar-expand-lg navbar-light text-bg-light sticky-top shadow-lg">
        <div class="container">
            <a class="navbar-brand" href="/">
                LARAVEL
            </a>
            <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
                <span class="navbar-toggler-icon"></span>
            </button>
            <div class="collapse navbar-collapse" id="navbarNav">
                <ul class="navbar-nav ms-md-auto gap-2">
                    <li class="nav-item">
                        <a class="nav-link {{ ($title === 'Home') ? "active" : "" }}" href="/">Home</a>
                    </li>
                    <li class="nav-item">
                        <a class="nav-link {{ ($title === 'About') ? "active" : "" }}" href="/about">About</a>
                    </li>
                </ul>
            </div>
        </div>
    </nav>

    <div class="container">
        @yield('content')
    </div>
</body>
</html>

Kemudian kita buat Halaman "home.blade.php", yang berisi

@extends ("layouts.mainlayout")

@section('content')
    <h1>HALAMAN HOME<h1>
@endsection

Lalu, buat halaman "about.blade.php", yang berisi

@extends ("layouts.mainlayout")

@section('content')
    <h1>HALAMAN ABOUT<h1>
@endsection

Konfigurasi pada Route

Route::get('/', function () {
    return view('home', ['title' => 'Home']);
});

Route::get('/about', function () {
    return view('about', ['title' => 'About']);
});

Hasilnya akan seperti ini


Seperti itu lah cara membuat templating/layouting pada BLADE milik Laravel


Penjelasan :

@section(' ') = sintaks directive untuk mendeklarasikan konten/isi dari sebuah halaman

@yield(' ') = sintaks directive untuk memanggil komponen dari directive @section

@extends(' ') = sintaks directive yang berguna untuk memanggil template utama/blueprint

dari beberapa directive diatas jika digabungkan menjadi satu kesatuan template dinamis yang utuh.

Posting Komentar

Lebih baru Lebih lama

POST ADS1

POST ADS 2