【laravel】@sectionに{{変数}}とした時に出力されない

製作 プログラム

最終更新日:2018/12/19

ラムネグから一言:寝る前に読むとくだらなすぎて逆に寝れると好評なすごい適当なブログをこっちではじめてます.

最初に

「laravelで@sectionに{{変数}}を入れると出力されない問題」は今のところまだ解決してません。とりあえず妥協しているだけなのでもっといい方法を知っているlaravelマスターの方、知恵をお借りできればうれしいです。記事下部の「Message」より書き込んでいただけます。

では、記事始めますね。

  1. 最初に
  2. まず問題点
  3. 妥協案
  4. もっといい方法お待ちしています

まず問題点

まず今回ぶつかった問題点を書きます。

laravelの@sectionというと、そうですね。みなさんご存知bladeで@yieldとセットで使うあれです。

それでこの@sectionの書き方は二つあって、

@sectionの書き方1


@section('yield_name')
中身
@endsection

@sectionの書き方2


@section('yield_name', '中身')

この書き方2の方、一行で書けるのでシンプルで便利ですよね。

でも、書き方2だと中身にララベルの変数エスケープ処理である{{}}を入れた時うまく出力されない、というのが今回の問題です。

わかりづらいですよね。もっと具体的な例だと、よくタイトルとかを書き方2の方法で記述すると思います。その時、例えばログイン制のサイトを作っていて、「〇〇さんのプロフィールページ」みたいなタイトルをつけようとすると、「〇〇」の部分が変数になると思うんですが、そこがうまく表示されない、という問題です。

こんな時にうまくいかない


@section('title', '{{$name}}さんのプロフィールページ')

妥協案

書き方1を使う、というのが妥協案です。

bladeファイルが読みにくくなってしまうのでヤだったんですが、仕方がありません。

またこのとき、

改行されちゃう


@section('title')
{{$name}}さんのプロフィールページ
@endsection

とすると、html上でtitleタグが改行してしまうので、

改行されない


@section('title')
{{$name}}さんのプロフィールページ@endsection

みたいに「@endsection」を改行せずに記述するとtitleタグが改行されずにスッキリします。

もっといい方法お待ちしています

あまり解決になっていなくて申し訳ないです。かなり調べたのですが根本の解決方法がわからず。

こんな方法もあるよ、という情報をお待ちしております。

【おしらせ、というか完全なる宣伝】

文体がもうぜんぜん適当すぎてあれだけどものすごい自由に書いてるブログ「檸檬だくだく」もよろしく.寝る前に読める恐ろしくくだらないやつです.

こんなにも一ミリも目を引かれないタイトルを取り扱ってます: ココア20g / ハイチュウとかってさ / なぜ米と小麦を食べようと思ったのかの謎 /