Bladeテンプレートの基本
<!-- 1. Bladeテンプレートの基本 -->
<h1>Welcome, {{ $name }}</h1>
@if ($isAdmin)
<p>You are an admin.</p>
@else
<p>You are a regular user.</p>
@endif
PHPレイアウトの継承
@extends
ディレクティブを使用してレイアウトを継承し、@section
と@yield
を使用してコンテンツを定義・表示します。
<!-- layouts/app.blade.php -->
<!DOCTYPE html>
<html>
<head>
<title>@yield('title')</title>
</head>
<body>
@yield('content')
</body>
</html>
<!-- home.blade.php -->
@extends('layouts.app')
@section('title', 'Home Page')
@section('content')
<h1>Welcome to our site!</h1>
@endsection
PHPコンポーネントの使用
再利用可能なUIパーツを@component
ディレクティブを使用して実装します。@slot
を使用してデータを渡すことができます。
<!-- components/alert.blade.php -->
<div class="alert alert-{{ $type }}">
{{ $slot }}
</div>
<!-- Using the component -->
@component('components.alert')
@slot('type', 'danger')
<strong>Oops!</strong> Something went wrong!
@endcomponent
PHPディレクティブの活用
@foreach
、@forelse
などのディレクティブを使用して、繰り返し処理や条件分岐を簡潔に記述できます。
@foreach ($users as $user)
<p>This is user {{ $user->id }}</p>
@endforeach
@forelse ($users as $user)
<li>{{ $user->name }}</li>
@empty
<p>No users</p>
@endforelse
PHPデータの受け渡し
コントローラーからビューにデータを渡し、ビュー内でそのデータを使用します。
Controller
public function index()
{
return view('user.index', ['users' => User::all()]);
}
PHPView
@foreach ($users as $user)
<p>{{ $user->name }}</p>
@endforeach
PHPアセットの管理
asset()
やmix()
ヘルパー関数、または@vite
ディレクティブを使用して、CSSやJavaScriptファイルを適切に読み込みます。
<!-- In blade template -->
<link href="{{ asset('css/app.css') }}" rel="stylesheet">
<script src="{{ mix('js/app.js') }}"></script>
<!-- Using Vite -->
@vite(['resources/css/app.css', 'resources/js/app.js'])
PHPリダイレクト先に値を渡す
Controller
return redirect('/contact/complete')->with([
'memberID'=> $memberID
]);
PHPView
{{ session('memberID') }}
PHP
コメント