0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

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

Last updated at Posted at 2020-06-28

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

#ルート情報の追加
ルート情報は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にアクセスするとこんな表示がされます。
スクリーンショット 2020-06-28 8.58.21.png

#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にアクセスするとこうなります。
スクリーンショット 2020-06-28 9.16.06.png

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

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

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

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

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

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

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

つまりこうです。

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

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?