たなしょのメモ

日々勉強していることをつらつらと

Laravelのヒアドキュメントについて注意点

概要

Laravelのヒアドキュメント作成の際にエラーが発生してしまい、中々エラーでページが表示されなかったのでなぜエラーが起きたのか原因を調べた。

 

コード1

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class HelloController extends Controller
{
public function index(){
 
return <<<EOF


<html>
<head>
<title>Heelo/Index</title>
<style>
body {
font-size:16pt;
color:#999;
}
h1 {
font-size:100pt;
text-align:right;
color:#eee;
margin:-40px 0px -50px 0px;
}
</style>
</head>
<body>
<h1>Index</h1>
<p>これは、Helloコントローラのindexアクションです。</p>
</body>
</html>
EOF;

}
}

 

コード2

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class HelloController extends Controller
{
public function index(){
 
return <<<EOF


<html>
<head>
<title>Heelo/Index</title>
<style>
body {
font-size:16pt;
color:#999;
}
h1 {
font-size:100pt;
text-align:right;
color:#eee;
margin:-40px 0px -50px 0px;
}
</style>
</head>
<body>
<h1>Index</h1>
<p>これは、Helloコントローラのindexアクションです。</p>
</body>
</html>
EOF;

}
}

結果

上記のコード1とコード2はこのブログ上ではわからないが、実際はEOFの終点部分のみコード1はインデントしていて、コード2はインデントしていなくて文字を詰めている。結果コード2の方は正常どおりにページが表示される。

どうも、EOFの終点行ではスペース等入れずに詰めて記述しないとエラーになるらしい。

備忘録としてメモ。