非IT企業に勤める中年サラリーマンのIT日記

非IT企業でしかもITとは全く関係ない部署にいる中年エンジニア。唯一の趣味がプログラミングという”自称”プログラマー。

【Laravel】routes/web.phpを編集してWebページを追加してみる

   

前回、ようやくLaravelの環境構築が完了しいよいよ触っていくのですが、今回はまずroutes/web.phpを編集してWebページを追加してみようと思います。ここを理解することでどのようにWebページが表示されるのか仕組みが理解できます。

下図はLaravelのプロジェクト作成時のトップページですが、このファイルがどこに置かれているか、それがなぜTOPページとして認識されているかを知っておきましょう。

 

Webページの仕組みを理解しよう

以下がプロジェクト内のファイル構成の一部ですが、TOPページはresources>views>welcome.blade.phpになります。ではなぜこれがTOPページと認識されるかというとroutes>web.appにその旨が記述されているからです。

Web.phpの中身はこんな感じになっています。赤枠で示したところがTOPページ(/)を示しているわけです。(http://127.0.0.1:8000/

 

Route::get(アドレス, ページを示す関数);

Route::get('/', function () {
   return view('welcome');
});
 

 

TOPページ情報がview('welcome')引数welcomeに「.blade.php」を付けたものがファイル名になります。先程のwelcome.blade.phpがそれになります。

 

Webページを追加してみよう

次に新しいページを追加してみましょう。web.phpに以下の四角枠のコードを追加してみます。※コメント文は削除しました。

 

アドレスは「hello」です(http://127.0.0.1:8000/hello/)。そこにアクセスするとwelcome.blade.phpというページが開くというわけです。

Route::get('hello', function () {
  return view('hello');
});
 

 

というわけで、welcome.blade.phpというファイルを新たに追加しました。

welcome.blade.phpの中身はこんな感じです。単純なHTMLタグとなります。

 

ご覧の通り開くことができました。

 

Route::get内にHTMLタグを記述することもできる

以上はRoute::get内にphpファイルを示していましたが、ファイルを指定するのではなく直接HTMLタグを記述することもできます。ヒアドキュメントでHTMLタグを変数$htmlに格納しました。それをRoute::getに渡せば良いわけです。

$html = <<<EOF
<!DOCTYPE html>
<html lang="jp">
<head>
   <meta charset="UTF-8">
   <title>Page3</title>
</head>
<body>
   <h1>Page3</h1>
</body>
</html>
EOF;

Route::get('page3', function () use ($html) {
    return $html;
});
 

 

ご覧の通り、http://127.0.0.1:8000/page3/を開くと新しく作ったページが現れます。

 

スポンサーリンク

 - Laravel