【Laravel】@section~@showをコメントアウトしたら微妙にハマった

@section~@showをコメントアウトしたら微妙にハマった

LaravelのBladeテンプレートで、@section~@show使ってる箇所をコメントアウトしたら、Javascriptのsyntax errorが起こった。

原因

まず、問題の箇所のソースは以下の通り。

@section('hogehoge')
hogehoge: function(hoge) {
    if (hoge > 0) {
        hoge++;
    }
}
@show
@section('hogehoge2')
hogehoge2: function() {
    :
}

こんな感じで、Blade上にJavascriptの記述箇所がある部分を、

// @section('hogehoge')
// hogehoge: function(hoge) {
//     if (hoge > 0) {
//         hoge++;
//     }
// }
// @show
@section('hogehoge2')
hogehoge2: function() {
    :
}

一部コメントアウトすると、出力結果は、

// hogehoge2: function() {
    :
}

こんな感じになり、コメントアウトしたくない行にもコメントが反映されてしまう。

@showは//でコメントされない

Bladeテンプレートによるレンダリングでは、//でディレクティブを無効化できないみたい。

なので、Bladeのコメント式である{{– –}}を利用してコメントアウトする必要がある。

基礎を抑えてなかったので、無駄に考えさせられた…もっと勉強しないとなぁ。

投稿者: Output48

中学生の時に初めてHTMLに触れてからホームページ制作を独学で始める。 ベンチャー企業の営業、大手企業のPG・SEを経て、独立。 現在はとある企業のCTOと、変な名前の会社の社長をしてる。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください