【Laravel】ルーティングについて2


こちらの記事は以下の書籍を参考に執筆しました

ルート情報の追加

ルート情報はweb.phpに追加します。

Route::get('hello', function () {
    return '<html><body><h1>Hello</h1><p>this is sample page.</p></body></html>';
});

出典:PHPフレームワークLaravel入門 第2版

このように記述した後php artisan serveを実行します。
その後http://localhost:8000/helloにアクセスするとこんな表示がされます。

HTML出力

Router::getの第2引数の関数のreturnでHTMLを渡すとそのまま表示されます。

function(){
  return '.........HTMLのソースコード.........';
}

出典:PHPフレームワークLaravel入門 第2版

ヒアドキュメントを使う

もちろんPHPで長文テキストを記述するのに使われるヒアドキュメントでも記述できます。

ルートパラメータの利用

Route::getではアクセスするときにパラータを設定して値を渡すことができます。

Route::get('/○○/{パラメータ}',function($受け取る引数){...});

出典:PHPフレームワークLaravel入門 第2版

{パラメータ}に指定したものがそのまま引数取りして取り出せます。

Route::get('hello/{msg}', function ($msg) {
    $html=<<<EOF
    <html lang="en" dir="ltr">
      <head>
        <meta charset="utf-8">
        <title></title>
      </head>
      <body>
        <h1>hello</h1>
        <p>{$msg}</p>
      </body>
    </html>
EOF;
  return $html
});

出典:PHPフレームワークLaravel入門 第2版

こう書いて
http://localhost:8000/hello/this_is_testにアクセスするとこうなります。

上の例では第1引数のパラメータは1つですが、複数でも可能です。

Route::get('hello/{id}/{passwd}', function ($id,$passed) {}

出典:PHPフレームワークLaravel入門 第2版

このパラメータ部分を省略してアクセスするとエラーになります。

パラメータを付けなくてもいい方法として任意パラメータがあります。
任意パラメータはパラメータの末尾に?をつけます。

Route::get('hello/{msg?}/', function ($msg='no message') {}

出典:PHPフレームワークLaravel入門 第2版

つまりこうです。

パラメータの末尾に? 種類
ある 任意パラメータ
ない 必須パラメータ