developer's diary

最近はc#のエントリが多いです

gitに記録しながらlaravel8.xプロジェクト作成の記録 (2)

本エントリは、以下リンクの続きです。

mitsugeek.net

今回はlaravelアプリに対してトップページにアクセスした際に表示されるページを作成

f:id:mitsugi-bb:20210319012343p:plain

このページには、トップページへのリンクが表示されますが、特に意味はありません。 あくまでNamed Routesを利用したリンクの書き方を説明するためだけに記述してます。

1. routes/web.php を修正

<?php
//~~省略~~
Route::get('/', function () {
    return view('top');
})->name('top');

Routeファザードと呼ばれるもので、実態は、Routerクラスです。

Routerクラスの、getメソッドを呼び出すことで、ルーティング(どのURLにアクセスした時に、何をするのか)を登録しています。

この場合、ルート(/) のURL http://localhost:8888/MyApp/ にアクセスした場合に、第2引数の関数が実行されます。

ポイントは、nameメソッドを実行しているところです。

これは、「Named Routes(公式ドキュメント:英語)」と呼ばれるもので、リンク作成の際に少し便利になるため、私はよく利用します。

view('top')は、ヘルパー関数で、 「resources/views/top.blade.php」のbladeファイルを表しています。

ヘルパー関数とは?

ヘルパー関数は、laravelを利用する上で、よく使うものをグローバルな(どこからでもアクセスできる)関数としてまとめたものです。

ドキュメント、APIドキュメント

メモ

  • Route::get()の戻り値は、Routeクラス(Illuminate/Routing/Route.php)
  • Routeクラスには、nameメソッドが存在
  • nameメソッドはメソッドチェーンという技術が利用されている
  • laravelにはヘルパー関数と呼ばれるよく使う機能はヘルパが存在する

2.「welcome.blade.php 」を「top.blade.php」に変更

「welcome.blade.php」 のファイル名を、「top.blade.php」に変更します。

今回、view('top')という指定を行ったので、laravelはviewファイルを探しに行く時に「resources/views/」にある「top.blade.php」を探しに行きます。

変更しない場合のエラー内容

ファイル名を存在しない場合は、以下のようなエラーになります。

f:id:mitsugi-bb:20210319023612p:plain

英語 日本語
View [top] not found. ビュー[トップ]が見つかりません。

3. resources/views/top.blade.php を修正

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>トップページ</title>
</head>
<body>

    <h1>トップページ</h1>

    <ul>
        <li><a href="{{route("top")}}">トップページ</a></li>
    </ul>
</body>
</html>

routeというヘルパー関数を利用して、Named Routesで登録したルート名を利用してリンクを構築しています。

ドキュメント、APIドキュメント

今回修正したソース

github.com

続きはこちら

mitsugeek.net