◀ 5. LaravelのBladeテンプレート(ビュー/レイアウト)とは ▶
LaravelにはBladeというテンプレートエンジンがある。
Bladeテンプレートとは?
Bladeテンプレートを使うとと、共通部分(ヘッダー、サイドバー、フッター等)は親ビューに記述し、各ページのコンテンツは親ビューを継承した小ビューに記述するというようなことができる。
また、ディレクティブ(@~)を使用することで「if」や「for」を簡潔に記述することが出来る。
テンプレートの拡張子は「.blade.php」とする。
ビューとは
ビューはアプリケーションのフロントエンドを担当する。
Laravelでは、表示用のテンプレートをあらかじめ用意し、それを利用して画面表示を行うことが可能。(Bladeテンプレート)
テンプレートは、「resources」フォルダ内にある「views」フォルダの中に配置する。また、PHPファイルとして作成する。
レイアウトという大枠を作ってそこにビューを組み込むのが一般的なやり方。
レイアウトの定義
以下の様に、レイアウトは大枠を定義する。
<!-- resources/views/layouts/app.blade.php --> <!-- CSSとJavaScript --> <body> @yield('content') |
「@yield('content')」にビューを組み込んで内容を表示させる。
@yield('content')
ビューの定義
以下の様に画面に入力項目やボタンを追加する。
<!-- resources/views/tasks.blade.php --> @section('content') <!-- Bootstrapの定形コード… --> <div class="panel-body"> <!-- タスク名 --> <div class="col-sm-6"> <!-- タスク追加ボタン --> |
「@extends('layouts.app')」は先ほどの「resources/views/layouts/app.blade.php」レイアウトを使用するという意味。
「@section('content')」から「@endsection」の内容を、先ほどのレイアウトで定義した「@yield('content')」の部分に挿入する。
ビューの表示
ルーティング機能を利用し、テンプレートの表示が可能。
Route::メソッド ( ※値 , function () ) { return view(テンプレート , [連想配列]); }); |
第1引数:使用するテンプレートの名前を指定。
第2引数:テンプレートに渡す値を連想配列で指定。指定された連想配列の値は、そのままテンプレート内で使うことが可能。
※ルーティングで割り当てるアドレス
具体例は以下の通り。
Route::get('/', function () { |
- インストールと設定
- クイックスタート & チュートリアル(初心者向け)
- クイックスタート & チュートリアル(中級者向け)
- ルーティング
- コントローラー
- マイグレーションとテーブル定義
- データベースの設定
- Eloquentモデル (ORM)
- SQLとクエリビルダー
- バリデーション
- .envファイルの設定値へのアクセス
- 動作環境による分岐処理
- configフォルダ配下の設定値へのアクセス
- assetヘルパーを利用したpublicフォルダへのアクセス
- storageフォルダへのアクセス
- アプリケーション名の変更
- メンテナンス
- ログイン画面(認証システム)の作成
- ログインの必須化
- ログインユーザー情報の取得
- ルートの認証化
- 本番サーバーへのデプロイ方法
- 多言語化
- csrf_field
- ファイルのダウンロード
- CSVのアップロードおよび読み込み(maatwebsite/excel)
- ページタイトルの設定
- コマンド一覧
- エラー一覧
- SQLの実行ログ出力方法
- キャッシュのクリア
- Selectの結果の最初もしくは最後に任意の値を追加する方法
- ajaxでPOST通信する際の注意点
- ソーシャルログインの実装
- セッション情報の確認
- ログイン、ユーザー登録、パスワードリセット後のリダイレクト先の変更方法
- redirectやreturn viewにメッセージを付与する方法
- クッキー(cookie)の設定と取得
- クラスの再読み込み
- csrfの有効時間を変更する方法
- ViewComposerを用いてviewに共通の値を付与する方法
- View::shareを用いて共通の値を各ビューに渡す方法
- ミドルウェアを用いた処理の共通化
- Middleware内でAuth::check()などを使用する方法
- Controller以外でリダイレクトする方法
- セッションの値の取得/保存/更新/削除
- $requestの値を変更する方法
- 常時SSL化
- ページング(ページネーション)をする方法
- vue.jsとの連携
- Vue.jsと連携するSPA実行環境構築
- .envの値をvue.jsで参照する方法
- vue.jsを本番環境にリリースする方法
- could not find driver(Windows, MySQL編)
人気ページ
最近更新/作成されたページ
- dasdsa (2022-11-13 07:57:24)
- Sydney top independent escorts (2022-11-13 07:56:58)
- 'include' is not defined (2022-06-09 22:05:10)
- 【django】ログイン 認証機能 (2022-06-06 14:30:24)
- [Dockerエラー] WSL 2 installation is incomplete. (2022-06-02 15:34:14)
- 【Laravelエラー】does not comply with psr-4 autoloading standard. Skipping. (2021-11-28 18:13:59)
- 複数のデータベースに接続する方法 (2021-11-16 12:58:24)
- SQLSTATE[22007]: Invalid datetime format: 1366 Incorrect string value: ~ (2021-11-07 07:19:55)
- 【Laravelエラー】Invalid request (Unsupported SSL request) (2021-11-01 04:19:34)
- 【Laravelエラー】Database hosts array is empty. (2021-10-04 00:01:48)
最近コメントのあったページ
- 【Laravel】View::shareを用いて共通の値を各ビューに渡す方法 (2023-02-07 03:35:24)
- 【Spring Boot (JPA編)】DB接続設定からエンティティおよびリポジトリの作成、値の取得まで (2023-02-07 02:54:08)
- 【Spring Boot (JPA編)】DB接続設定からエンティティおよびリポジトリの作成、値の取得まで (2023-02-07 01:32:20)
- jQueryにおける値と要素の削除 (2023-02-07 01:31:24)
- 【Laravel】View::shareを用いて共通の値を各ビューに渡す方法 (2023-02-07 00:18:43)
- 【Spring Boot (JPA編)】DB接続設定からエンティティおよびリポジトリの作成、値の取得まで (2023-02-07 00:09:06)
- 【Spring Boot (JPA編)】DB接続設定からエンティティおよびリポジトリの作成、値の取得まで (2023-02-06 23:49:12)
- 【Spring Boot (JPA編)】DB接続設定からエンティティおよびリポジトリの作成、値の取得まで (2023-02-06 23:48:01)
- 【Spring Boot (JPA編)】DB接続設定からエンティティおよびリポジトリの作成、値の取得まで (2023-02-06 23:43:24)
- プロジェクトの作成と削除 (2023-02-06 22:55:30)
最近の質問
- 質問です (2020-02-20 12:19:36)
- フリーランスの単価って高いですか? (2020-02-12 19:56:16)
- 情報系のaoを受けるつもりなんですが何かおすすめのソフトはありますか? (2020-02-12 19:54:22)
- test3 (2020-02-08 23:50:54)
- セレクトボックスのCSSのcontentで三角の部分が押せない (2019-07-03 13:06:10)
- GCPのwp-config.phpでpermission denied (2019-06-05 20:04:08)
- Spring FrameworkのEntityのカラム名の大文字小文字、アンスコについて (2019-02-01 07:13:49)
- PHP(Laravel)からPythonのプログラムを呼び出したいのですがどうすればよいでしょうか。 (2018-12-06 06:26:57)
- djangoを本番環境にデプロイしたいのですがどのレンタルサーバー or VPSサーバーがよいですか (2018-12-01 12:04:18)
- Django administrationのUsernameとPasswordについて (2018-11-30 11:55:20)
- Google Adsenseでアダルトコンテンツと誤認されてしまいました。 (2018-09-09 17:15:36)
- Google MapsをUnityで使用する方法&料金 (2018-08-28 02:37:26)
- Amazon PA-APIのSort=salesrankが効かない (2018-07-21 08:54:25)
- 楽観ロックと悲観ロックの違い (2018-01-11 05:05:33)
- レンタルサーバーって沢山ありますけどどこがいいでしょうか?AWSってどうなんですか? (2018-01-09 10:03:20)
- ディープラーニングのライブラリってどれがオススメですか? (2018-01-06 05:15:40)
- Webスクレイピングってどこまでが違法なんでしょうか? (2018-01-06 05:09:08)
- 人工知能(AI)、機械学習、ディープラーニングの違い (2018-01-06 02:40:44)
コメントを削除してもよろしいでしょうか?
No.267 |
guest
| 2022-07-24 09:13:55
betflix6789.com เป็นผู้ให้บริการคาสิโนออนไลน์ ที่ฝาก-ถอนอัตโนมัติเว็บสล็อตแจกเครดิตฟรี ไม่ต้องฝาก ไม่ต้องแชร์ 2565เร็วที่สุด รอให้บริการสล็อต บาคาร่า ยิงปลาออนไลน์ท่านตลอด 24ชั่วโมงสมัครเลยNo.134 |
guest
| 2020-08-23 08:40:51
Chief Synthetic Intelligence Officer (Industrial). industrial internet of things and industry 4.0No.90 |
guest
| 2020-06-26 00:33:40
casino games slots online casino slots online casino games onlineNo.88 |
guest
| 2020-06-24 05:23:43
online casino games casino games online online casino casino online slots onlineNo.75 |
guest
| 2020-06-08 16:26:36
online casino casino online online casino games casino games online casinoNo.73 |
guest
| 2020-06-08 14:48:30
casino online casino games online casino games casino games online casino games onlineNo.66 |
guest
| 2020-06-02 11:15:17
casino games casino online real money games casino real money casino games onlineNo.59 |
guest
| 2020-05-25 16:10:36
real money games casino online slots online slots online online casino