概要
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の終点行ではスペース等入れずに詰めて記述しないとエラーになるらしい。
備忘録としてメモ。