17
17

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 5 years have passed since last update.

ルートパラメータ

Last updated at Posted at 2018-12-03

#ルートパラメータとは

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

これは以下のように記述します。

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

第1引数のアドレス部分に、**{パラメータ}**という形でパラメータを用意する。

これでこの**{パラメータ}**に指摘されたテキスト部分がパラメータとして取り出されるようになる。

第2引数の関数では、パラメータの値を受け取る変数を引数として用意しておく。

これは、パラメータ名と同じ名前である必要はない。

**{パラメータ}**で指定したパラメータの値は、そのまま関数に引数に渡される。

パラメータは複数用意することもできる。

関数の引数を複数用意することで、これらの値を受け取れるようになる。

スクリーンショット_2018-12-03_20_30_30.png

パラメータを利用する

/hello/のアドレスの後にテキストを追記してアクセスしてみると、アドレスにつか化した部分がパラメータとして取り出され、Webページ内にメッセージとして表示されるようになる。

Route::get('hello/{msg}',function ($msg){
$html = <<<EOF
<html>
<head>
<title>Hello</title>
<style>
body {font-size:16px; color:#999;}
h1 {font-size:100px; text-align:right; color:#eee; margin:-40px 0px -50px 0px; }
</style>
</head>
<body>
 <h1>Hello</h1>
 <p>{$msg}</p>
 <p>これは、サンプルで作ったページです</p>
</body>
</html>
EOF;

  return $html;
});

こんな感じ!!

Hello.png

こんな感じでアクセスすると、「eee」の部分がパラメータとして取り出され、Webページにメッセージとして表示される。

#Route::getのパラメータについて

先ほどのコードを見てみると

第1引数 →"hello/{msg}"
第2引数 →"function($msg){...}

となっています。

第1引数では"hello/{msg}というようにして、hello/の後に{msg}というパラメータを用意していますね。

第2引数では、クロージャの引数に$msgというパラメータを用意しています。

これにより、{msg}の値が$msg引数に渡されるようになります。

もちろん複数になっても同じです。

Route::get('hello/{id}/{pass}',function ($id, $pass) {...略...});

こんな感じで使えます!!

#ちょっと応用(追記)

コントローラでルートパラメータを利用する方法について追記します!!

参考例としてコードを書いてみるのでそれをみてパクってみてください!!(適当)

routes.
Route::get('アドレス/{パラメータ}}','コントローラ名@アクション名');
Controller.
Class コントローラ名 extends Controller{
   public function index($パラメータ){
         return ~~~~~
   }
}

みたいな感じで使うことができます!

もちろん任意パラメータも使うことが出来ます!

雑すぎたかな御免なさい一応自分の頭を整理するのが目的なので、、

##メモ

パラメータとは
→外から入ってくる値!!

クロージャとは
→名前のない関数??


また、この記事はPHPフレームワークLaravel入門のアウトプットとして書いてみました。

自分がまだ理解していない部分を文字で起こすことによって頭の中を整理することが目的です。

ルートパラメータはなんか難しそうだったけど、ただのルートのパラメータなんだなって笑笑

これはルートの外でも使えるのかな??

進めていけば応用あると思うから楽しみだ!!

最近気付いたのが、難しい単語は分裂させて調べたらわかりやすくなるとゆうこと。

いい気づきを得ました笑笑


**ちょっと応用(追記)**を追記しました!! 

先ほどの疑問の**「これはルートの外でも使えるのかな??」**とゆうのを解決できてよかったです!!

朝活中、眠いけど頑張るzzz

おやすみな、、、

17
17
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
17
17

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?