Let's start from here

ルーティング

 

通常、HTMLファイルや「php」を呼び出す場合は、URLに直接ファイル名を指定するころで実行することができます。サブディレクトリがある場合は、それもURLのパスに含めることで呼び出すことか出来ます。

以下のアドレスをもったサイトでは、
http://aaa.bbb.com

「test.html」を呼び出す場合は、
http://aaa.bbb.com/test.html

というった記述をします。

サブディレクトリ「sub」の中の「a.html」ファイルを呼び出す場合は、
http://aaa.bbb.com/sub/a.html
になります。

しかし、Laravelフレームワークを使った場合は直接ファイルを指定することはできません。
これは、Laravelに限らずですが一般的にフレームワークでは、アドレス(URL)と処理の対応付けをする機能を持ってます。

URLのアドレスに対応して、処理を呼び出し実行する。これをLaravelでは、ルーティングと呼びます。
このサイトでも、https://cyber-genjin.net/policy/sitepolicy.htmlにアクセスすると「policy」ディレクトリにある「sitepolicy.html」が表示されます。
Laravelのようなフレームワークでは、アドレスに対応したプログラムを実行し、その処理の中で必要な画面を出力します。
このように、〇〇アドレスにリクエストがきたら、▲▲という処理を呼び出して実行するといった関連付けを書いているのが「ルーティング」です。
このルーティングを理解することでリクエストと処理の紐づけを操作して処理を実行させることができます。

ルーティングの処理

http://domein/aaa ➡ aaa処理
http://domein/bbb ➡ bbb処理
http://domein/ccc ➡ ccc処理

たとえば、“aaa”にアクセスするとaaaコントローラを呼び出すとか
“bbb”にアクセスするとbbb画面を表示するとかができます。

ルーティングは、Laravelのroutesディレクトリ中にファイルが用意されてます。
ここでは、その中の“web.php”について説明します。
他にもファイルがありますが、それは必要に応じて取り上げていきます。

“web.php”の中に以下の記述があります。

これは、ドメイン直下(トップページ)にアクセスすると“resources”ディレクトリの中の“views”ディレクトリの中の“welcome.blade.php”のファイルを呼び出してブラウザに表示します。

Route::get(‘アドレス’,処理);
getでトップページにアクセスがあると第二引数の処理(無名関数)を実行。
無名関数の処理は、view(‘welcome’)で“welcome.blade.php”テンプレートを返してます。

こうするとブラウザにには、「Hello world」と表示されます。
“resources”ディレクトリの中の“views”ディレクトリの中に“test.blade.php”を作成してください。

内容は以下です。

テスト Hello

こんどは、以下のURLにアクセス
http://localhost:8000/test

URLからパラメータを渡すこともできます。

http://localhost:8000/test/genjin

コントローラの呼び出し

フレームワークでは「MVC」と呼ぶ以下のアーキテクチャで要素を整理します。

Model:データ処理
View:画面表示表示
Controller:全体の制御

ルーティングは、いままで説明したように直接無名関数を使ってで画面表示するよりもコントローラーを呼び出しすことの方が一般的です。

http://cyber-genjin.net/user

“user”にgetアクセスがあったらUserControllerのindexメソッドを呼び出す。
第2引数にコントローラを指定して、第3引数にコントローラの中にあるメソッドを指定します。
具体的な処理は、UserControllerのindexメソッドの中で記述されます。
viewもコントローラのメソット内で呼び出します。