Wreszcie coś, czego nie robiliśmy w projekcie framework MVC – faker Laravela i pętle range w blade. Zobaczmy, w czym rzecz!

Ok, najpierw tworzymy navbar w app.blade.php:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Layout App - @yield('title', 'Main Page')</title>
    @vite('resources/js/app.js')
</head>
<body>

    @if(session('status'))
    <p>{{session('status')}}</p>
    @endif

    @section('navbar')
        <nav>
            <a href="{{route('faker')}}">Faker Example</a>
        </nav>
    @show

    @yield('content')
</body>
</html>

Używamy tego navbara w welcome2.blade.php razem z czymś dodatkowym tylko dla tej strony:

@extends('layouts.app')

@section('navbar')
    @parent
    <a href="https://www.google.com">Google</a>
@endsection

@section('content')
 //(...)
@endsection

Jeżeli nie chcemy nic dodawać, to należy olać section navbar w ogóle, zaś jeżeli nie chcemy, aby nam się „superowały” linki z app.blade.php to należy olać parent.

Ok, tworzymy faker.blade.php:

@extends('layouts.app')

@section('title', 'Faker Example')
@section('content')

 <h1>Faker example</h1>
    @foreach (range(1, 5) as $index)
    <div>
        <p>{{ fake()->name() }}</p>
        <p>Email: {{ fake()->unique()->safeEmail() }}</p>
        <p>Phone: {{ fake()->phoneNumber() }}</p>
        <p>Address: {{ fake()->address() }}</p>
    </div>
    @endforeach
  
@endsection

Jak widać olaliśmy section navbar bo nie chcemy nic tutaj zmieniać. Mamy tutaj pętlę foreach z range, mamy użycie fakera. Teraz dostosujmy route:

Route::get('/faker', function () {
    return view('faker');
})->name("faker");

Możemy już testować, jak to nam działa. Faker to helper i jako taki jest dostępny w blade, nie tylko w seederach (gdzie tego będziemy używać najczęściej).

Możemy sobie zatem poeksperymentować z różnymi funkcjami:

@extends('layouts.app')

@section('title', 'Faker Example')
@section('content')

 <h1>Faker example</h1>
    @foreach (range(1, 5) as $index)
    <div>
        <p>Fake male fullname: {{ fake()->name('male') }}</p>
        <p>Fake female fullname: {{ fake()->name('female') }}</p>
        <p>Fake first name: {{ fake()->firstName()}}</p>
        <p>Fake last name: {{ fake()->lastName()}}</p>
    </div>
    @endforeach
  
@endsection

Eksperymentując w ten sposób lepiej zrozumiemy narzędzia, których używamy.