laravel – blade について

django で言えば template のようなものだと思います。

構造

今回の構造は以下のようになっています。


views
├── layouts
│   └── base.blade.php
└── pages
    └── selectAll.blade.php

template の継承

template を継承することができます。
イメージは以下のような感じです。

継承は、「@extends(‘../layouts/base.blade.php’)」じゃなくて「@extends(‘layouts.base’)」です。
慣れればこちらの方がコードが簡単になりますね。

TestController を変更

TestController を以下のように変更。


<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Models\Test;

class TestController extends Controller
{
    public function index (Request $request)
    {
        $alldata = Test::all();
        return view('pages/selectAll', compact('alldata'));
    }
}

こうすると、「resources/views/pages/selectAll.blade.php」がコールされます。

views/layouts/base.blade.php


<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
	<main>
		@yield('content')
	</main>
</body>
</html>

views/pages/selectAll.blade.php


@extends('layouts.base')
@section('content')
	@foreach ($alldata as $ev )
		{{ $ev['comment'] }}<br>
	@endforeach
@endsection