🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Blade

Bladeとは、 PHPフレームワークのLaravelで使用することができるテンプレートエンジンです。テンプレートの継承とエスケープ機能を提供します。

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

Q&A

解決済

1回答

1786閲覧

laravelのbladeレイアウトに関する質問

twinparadox

総合スコア42

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Blade

Bladeとは、 PHPフレームワークのLaravelで使用することができるテンプレートエンジンです。テンプレートの継承とエスケープ機能を提供します。

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

0グッド

0クリップ

投稿2019/11/18 21:54

編集2019/11/18 22:10

#bladeによるレイアウトの継承でつまずいています。どなたか教えて頂きたいです。

##問題:共通する部分をベースレイアウトにして個別レイアウトを表示させたいがエラーが出てしまい先へ進めません。

エラー文

Facade\Ignition\Exceptions\ViewException Cannot end a section without first starting one. (View: /Users/yokonohidekazu/Desktop/laravel/test_app/resources/views/Lessons/New.blade.php) http://localhost:8000/New

views/layouts/Loginapp.blade.php

<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title>@yield('title')</title> <link rel="stylesheet" type="text/css" href="login.css" media="all" /> <style> body, p, form, input { margin: 0 } #form { width: 350px; margin: 30px auto; padding: 20px; border: 1px solid #555; } form p { font-size: 14px; } .form-title { font-size: 30px; text-align: center; margin-bottom: 20px; border-bottom: solid 3px #fff; " } .name { margin-bottom: 20px; } .mailaddress { margin-bottom: 20px; } .password { margin-bottom: 20px; } .confirm password { margin-bottom: 20px; } input[type="text"], input[type="password"] { width: 350px; padding: 4px; font-size: 14px; margin: 0 auto; } .submit { text-align: center; } /* skin */ #form { background: #053352; background-image: -webkit-linear-gradient(top, #053352, Courier New); background-image: -moz-linear-gradient(top, #053352, Courier New); background-image: -ms-linear-gradient(top, #053352, Courier New); background-image: -o-linear-gradient(top, #053352, Courier New); background-image: linear-gradient(to bottom, #053352, Courier New); -webkit-border-radius: 6; -moz-border-radius: 6; border-radius: 6px; font-family: Courier New; color: #ffffff; font-size: 20px; padding: 20px 20px 20px 20px; text-decoration: none; } .submit input { background: #f78181; background-image: -webkit-linear-gradient(top, #f78181, #f78181); background-image: -moz-linear-gradient(top, #f78181, #f78181); background-image: -ms-linear-gradient(top, #f78181, #f78181); background-image: -o-linear-gradient(top, #f78181, #f78181); background-image: linear-gradient(to bottom, #f78181, #f78181); -webkit-border-radius: 8; -moz-border-radius: 8; border-radius: 8px; -webkit-box-shadow: 1px 1px 3px #666666; -moz-box-shadow: 1px 1px 3px #666666; box-shadow: 1px 1px 3px #666666; font-family: Courier New; color: #ffffff; font-size: 16px; padding: 10px 20px 10px 20px; text-decoration: none; } .submit input:hover { background: #f5c7c7; background-image: -webkit-linear-gradient(top, #f5c7c7, #f5c7c7); background-image: -moz-linear-gradient(top, #f5c7c7, #f5c7c7); background-image: -ms-linear-gradient(top, #f5c7c7, #f5c7c7); background-image: -o-linear-gradient(top, #f5c7c7, #f5c7c7); background-image: linear-gradient(to bottom, #f5c7c7, #f5c7c7); text-decoration: none; } #form { background: #053352; background-image: -webkit-linear-gradient(top, #053352, Courier New); background-image: -moz-linear-gradient(top, #053352, Courier New); background-image: -ms-linear-gradient(top, #053352, Courier New); background-image: -o-linear-gradient(top, #053352, Courier New); background-image: linear-gradient(to bottom, #053352, Courier New); -webkit-border-radius: 6; -moz-border-radius: 6; border-radius: 6px; font-family: Courier New; color: #ffffff; font-size: 20px; padding: 20px 20px 20px 20px; text-decoration: none; } </style> </head> <body> <br> <br> <br> <br> <br> <br> <div id="form"> <p>@yield('title')</p> <form method="POST" action="/Login"> @yield('form') </form> </div> </body> </html>

views/lessons/New.blade.php

@extends('layouts.Loginapp') @section('title','Sign Up') <p class="form-title">SignUp</p> @endsection @section('form','SignUp') <p>Name</p> <p class="name"><input type="text" name="name" maxlength="32" autocomplete="OFF" /></p> <p>Mailaddress</p> <p class="mailaddress"><input type="text" name="mailaddress" maxlength="32" autocomplete="OFF" /></p> <p>Password</p> <p class="password"><input type="password" name="password" maxlength="32" autocomplete="OFF" /></p> <p>Confirm Password</p> <p class="Confirm password"><input type="password" name="Confirm password" maxlength="32" autocomplete="OFF" /></p> <p class="submit"><input type="submit" value="登録" /></p> @endsection

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2019/11/18 22:49

エラーメッセージにそのまま理由が書いてあるように思いますが、どこまで読みましたか?
twinparadox

2019/11/18 23:28

エラーメッセージ自体は翻訳内容まで読みましたが、エラーの該当するソースコードが例外処理されていたところまで読みました。
m.ts10806

2019/11/18 23:52

翻訳ももちろん良いのですが end a section だけでsection関係だと気づけそうだなと思った次第です。
m.ts10806

2019/11/19 01:30

あとは仕様を確認して自身の実装と照らし合わせて不備かないか確認したら良いと
twinparadox

2019/11/19 02:39

ありがとうございます。
guest

回答1

0

ベストアンサー

@sectionの第二引数が不要なのでは?
第二引数でコンテンツを指定できます。
そのためsection~endsectionでコンテンツが書かれているので
endsection側のペアのsectionが見失われているのではないかと思います

投稿2019/11/18 22:13

mikkame

総合スコア5036

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

twinparadox

2019/11/18 23:28 編集

この後やりたい事としてあるのが、別の個別レイアウトフォルダを作成し@section('form','◯◯') の部分を個別レイアウトとして使い回したいのですが、そもそもの構文としての記述方法が間違えているのでしょうか?
mikkame

2019/11/18 23:57

@section(セクション名、コンテンツ) コンテンツを省略する場合は 次の@endsectionまでの間をコンテンツとする 現在は両方とも入れられているのでおかしい。 '◯◯'の部分はどういう効果がでるとおもって入力しているのですか?
twinparadox

2019/11/19 02:30 編集

ベースレイアウトで @iyeld('form','◯◯') としてクラスのように使い回せるのかと思ってました。
mikkame

2019/11/19 05:06

使いまわせます。 yield、sectionともに、第一引数がコンポーネンントの名前です。 yieldは◯◯が不要かと思います。
mikkame

2019/11/19 05:07

とりあえず、sectionの第二引数を消してみませんか?
twinparadox

2019/11/19 05:15

はい。丁寧かつお早い返信本当にありがとうございます???? 帰宅したらすぐにやってみたいと思います!
twinparadox

2019/11/19 14:28

第二引数を消したところ思った通りの表示になりました。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問