プログラミング

Laravelの@yieldと@sectionがよくわからなかったのでまとめてみる

laravelでは、.bladeという拡張子がついたファイルでViewを作ります。

Bladeで共通化部の抜き出し(@yield,@section)がよくわからなかったので
具体例を出しながらやってみます。

@yield,@sectionとは

@yieldは、@section内を埋め込みます。親側のファイルで使います。

@sectionは、@yield内に埋め込まれます。子側のファイルで使います。

Laravel 5.5 Bladeテンプレート

実際に書いてみます。

変更前

1ファイルにすべて書い場合です。
サイドバー等は共通化したほうがコードの量が減らせて、見通しもよくなります。
(サイドバー作るのが面倒だったので、文字だけになっています)

resources/views/index.blade.php

変更後

@yieldと@sectionを使って、分割します。

親ファイル

「resources/views/」直下に「layouts」フォルダを作ります。

新規ファイルを作成します。

本文のとこだけ変えたいので、変更前からコピペして本文があったところを「@yield」とします。

resources/views/layouts/app.blade.php

子ファイル

「@section」を書いて、その中に変更前の本文のところを書きます。

@extends(‘layouts.app’) で共通のテンプレート(resources/views/layouts/app.blade.php)を読み出しています。

resources/views/index.blade.php

所感

落ち着いてやってみたら思ったより簡単でした。
活用して、見通しの良いコードを書いていきたいです。

Amazonで「Laravel」の本をみてみる!!

php映画検索
PHP初心者が映画WebAPI TMDbを使って映画を検索してみたこんにちは、ちゃりおです。 最近PHPを勉強していて、映画関係のサービス作りたいなーと思ってました。 映画の情報をとってくるWeb A...
[割引情報あり]PHPを1ヶ月で学習するにはTechAcademyがおすすめこんにちは、ちゃりおです。 退職に伴い1ヶ月有給が取れたので、プログラミングスクールを受講してみました。 今回、受講したのはTechA...
DockerでLAMP環境を作ったら、PDO接続できなくてハマった件DockerでLAMP環境環境作ったら、phpのpdoからデータベースに接続できずハマった件です。 DockerにPDOがインストールできていない。 次は、以下のエラーではまりました。 ERROR:SQLSTATE[HY000] [2002] No such file or directory...