###ルーティングとは
特定のアドレスにアクセスした時、どの処理を呼び出して実行するか。それを管理するのが「ルーティング」です。実際の処理が記載されているというよりあくまでどの処理かの紐付けを行なっているだけです。具体的に実行すべき処理は「コントローラー」に記載されています。
####前提条件
プロジェクトの作成が終わっている状態
まだ作成できていない方はこちら
####実際のアプリでは
プロジェクトの作成が完了すると以下のコマンドでサーバーを立ち上げてアプリを使うことができます。
php artisan serve
実行後に表示されるURLをブラウザで開くとLaravelのページが表示されると思います。
これはアプリ内のresouces/views/welcome.blade.php
が表示されている状態です。
このファイルを開く、という指定はroutes/web.php
内に記載されています。
<?php
use Illuminate\Support\Facades\Route;
//ここで「welcome」の指定がある
Route::get('/', function(){
return view('welcome');
});
view関数で指定することで、自動的にresouces/views内のファイルという指定がされるというわけです。
例えば、view関数でファイルを分けずにweb.php内に直接htmlを記述することも可能です(本来はこういう使い方をすることはないが、動きの理解として。)
Route::get('test', function () {
return '<html><body><h1>Hello</h1><p>This is sample page.</p></body></html>';
}
サーバーの起動後http://localhost:8000/test
に接続すると記述した内容が表示されていることがわかる。
他にリクエストされた時のパラメーターを利用する方法もある。
Route::get('test/{str}', function ($str) {
return '<html><body><h1>Hello</h1><p>This is sample page.</p><p>{$str}</p></body></html>';
}
サーバーの起動後http://localhost:8000/test/好きな単語
に接続すると好きな言葉に記載した内容が表示されていることがわかる。上記のパラメーターは「必須パラメーター」というもので記載しないとエラーになります。対して「任意パラメーター」の書き方は以下のように「?」をつける
+デフォルト値を設定する
だけです。
Route::get('test/{str?}', function ($str='no contents.') {
return '<html><body><h1>Hello</h1><p>This is sample page.</p><p>{$str}</p></body></html>';
}