🙆♀️
【初心者向け】Laravelのview開発で気を付けること
Laravelのviewについて
- Bladeテンプレートエンジンを用いる
- 拡張子は
.blade.php
- 拡張子は
テンプレートエンジンとは
- 動的なウェブページを生成するために使用されるツールやライブラリのこと
- 変数を埋め込んだり、ループ・条件分岐、テンプレートの継承などが行える
Bladeディレクティブ
LaravelのBladeテンプレートエンジンで使用される特別な構文のこと
-
@extends
:テンプレートの継承
親テンプレートを継承する
home.blade.php
@extends('layouts.app')
/resources/views/layouts
配下のapp.blade.php
のレイアウトが継承される
-
@section
と@endsection
: セクションの定義
セクションの内容を定義し、後で親テンプレートに挿入するために使用
home.blade.php
@extends('layouts.app')
@section('title', 'hogehoge')
@section('content')
<p>This is my body content.</p>
@endsection
-
@yield
: セクションの表示
親テンプレートでセクションの内容を表示するために使用
app.blade.php
<!DOCTYPE html>
<html>
<head>
<title>App Name - @yield('title')</title>
</head>
<body>
@yield('content')
</body>
</html>
-
@include
: 別のビューをインクルード
別のBladeビューをインクルードするために使用
home.blade.php
@extends('layouts.app')
@section('title', 'hogehoge')
@section('content')
<p>This is my body content.</p>
@include('partials.myskillsets')
@endsection
/resources/views/partials
配下のmyskillsets.blade.php
のビューがインクルードされる
- @if, @elseif, @else, @endif: 条件分岐
@if($user->isAdmin())
<p>Welcome, Admin!</p>
@elseif($user->isManager())
<p>Welcome, Manager!</p>
@else
<p>Welcome, User!</p>
@endif
- @foreach, @endforeach: ループ
@foreach($users as $user)
<p>{{ $user->name }}</p>
@endforeach
- @for, @endfor: ループ
@for($i = 0; $i < 10; $i++)
<p>Current value: {{ $i }}</p>
@endfor
- @while, @endwhile: ループ
@while(true)
<p>This will loop forever.</p>
@endwhile
- @forelse, @empty, @endforelse: ループ
@forelse($users as $user)
<p>{{ $user->name }}</p>
@empty
<p>No users found.</p>
@endforelse
- @switch, @case, @break, @endswitch: スイッチ文
@switch($i)
@case(1)
<p>First case...</p>
@break
@case(2)
<p>Second case...</p>
@break
@default
<p>Default case...</p>
@endswitch
Laravel UIについて
フロントエンドの開発環境を簡単に作成できる公式ライブラリ
- 下記のコマンドでLaravel UIをインストールする
composer require laravel/ui
- 使いたいライブラリを選んでコマンドをたたく
php artisan ui bootstrap
php artisan ui vue
php artisan ui react
- 下記のコマンドで依存関係をインストール
npm install
CSSについて
bootstrapやtailwindCSSなどが有効になっていると、自作で作成したクラスのスタイルが反映されないことがあるので注意
viewが更新されない
実際に開発してみて、CSSやJSがうまく反映されなかったときの対処法は下記の2つ
-
php artisan view:clear
でviewのキャッシュをクリアする - ブラウザ自体のキャッシュをクリアする
Discussion