質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.35%
Laravel

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

Blade

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

Q&A

解決済

2回答

1189閲覧

Laravelのbladeで@yieldを参考演算子の条件で使う方法

mei1216

総合スコア28

Laravel

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

Blade

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

0グッド

0クリップ

投稿2021/05/31 06:28

下記のコードでyieldで取得した文字を参考演算子の条件分として使おうとしましたが、エラーが出てしまいます。
正しい使い方を教えて頂けると幸いです。

blade

1<title>{{@yield('title') == "ホーム" ? "ホーム" : @yield('title')"ホーム以外"}}</title> 2//syntax error, unexpected '<' のエラーが出る

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

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

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

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

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

kai0310

2021/06/01 01:04

そもそもしていること。実装方法が悪手だと思う。
guest

回答2

0

ベストアンサー

下記の方法の様に、ルーティングに名前をつけて、ルートの検査を行う方が一般的だと思う。

PHP

1// web.php 2Route::get('/dashboard', function () { 3 return view('dashboard'); 4}); 5 6// 7if ( request()->routeIs('dashboard') ) { 8 // Do something... 9} 10

リクエストパスとメソッド - readouble.com の リクエストパス/ルートの検査 に書いてある。

投稿2021/06/02 03:13

kai0310

総合スコア2076

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

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

0

//syntax error, unexpected '<' のエラーが出る

原因はyieldディレクティブをマスタッシュ{{}}で囲っているからです。
yieldディレクティブはマスタッシュで囲うものではありません。

正しい書き方は下記です。

php

1<title> 2@yield("title") 3</title>

Bladeテンプレート 8.x Laravel

このケースではyieldの値による分岐ではなく全て子のテンプレートで指定する方が良いでしょう。
何か止むを得ない理由があれば、yieldディレクティブはデフォルト値が使えるのでそれを活用するのが一つの手段となります。

投稿2021/06/01 06:37

編集2021/06/09 11:34
Tatsuki-sth

総合スコア35

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

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

kai0310

2021/06/02 03:14

> また、他の回答者の方が指摘する通り、このケースではyieldの値による分岐ではなく全て子のテンプレートで指定する方が良いでしょう。 その様なことは言ってないかと思われます。
Tatsuki-sth

2021/06/09 11:35

推敲していたら誤った表現になっていましたね、修正しました。ご指摘ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問