LARAVEL

Laravel Blade Templates Mastery

February 14, 2024 16 min read

Introduction

Blade is Laravel's powerful templating engine. It provides a clean syntax for building views while allowing PHP code when needed. Master these features to build maintainable UI.

Layouts & Inheritance

{{-- resources/views/layouts/app.blade.php --}}
<!DOCTYPE html>
<html>
<head>
    <title>@yield('title')</title>
</head>
<body>
    @include('partials.header')
    
    <main>
        @yield('content')
    </main>
    
    @include('partials.footer')
</body>
</html>
{{-- resources/views/pages/home.blade.php --}}
@extends('layouts.app')

@section('title', 'Home Page')

@section('content')
    <h1>Welcome to our site!</h1>
@endsection

Blade Directives

{{-- Conditionals --}}
@if ($count > 0)
    <p>Items: {{ $count }}</p>
@elseif ($count > 10)
    <p>Many items</p>
@else
    <p>No items</p>
@endif

@unless($user->isActive)
    <p>User is inactive</p>
@endunless

{{-- Loops --}}
@forelse($items as $item)
    <li>{{ $item->name }}</li>
@empty
    <p>No items found</p>
@endforelse

{{-- Auth --}}
@auth
    <p>Welcome, {{ Auth::user()->name }}</p>
@else
    <a href="/login">Login</a>
@endauth

Components

{{-- resources/views/components/alert.blade.php --}}
<div class="alert alert-{{ $type }}">
    {{ $slot }}
</div>

{{-- Usage --}}
<x-alert type="success">
    Operation completed successfully!
</x-alert>

Slots & Props

{{-- Component with multiple slots --}}
<x-modal>
    <x-slot name="title">Confirm Delete</x-slot>
    
    Are you sure you want to delete this item?
    
    <x-slot name="footer">
        <button>Cancel</button>
        <button>Delete</button>
    </x-slot>
</x-modal>

Summary

Blade provides powerful features for building modern PHP applications. Use components and layouts for reusable, maintainable UI code.

For more Laravel tutorials, see Validation Rules.