#はじめに
大きく分けてルートパラメータとクエリ文字列があります
それぞれについて説明します。
#ルートパラメータを使う
まず、ルートパラメータについて説明します。
ルートパラメータは簡単な方法で
例えば、、
http://localhost:8000/hello
などでアクセス時に値(上の場合はhello)を渡す方法です
実装していく機能の概要は
URLからメッセージの文字列を取得して、コントローラーから取得して、アクセス先のビューに返します
##URLにパラメータを持たせる
URLにパラメータを設定できるようにします。
Route::get{'/{message}', 'UserController@index');
/{message}
にアクセスするとUserController
のindex
アクションに繋がるように設定します。
{message}
の部分にhello
やwelcome
など好きな言葉を記述してください
##コントローラでパラメータを取得する
まずコントローラを作成します。
$ php artisan make:controller UserController
ルートパラメータから値を受け取ってアクセス先のビューファイルに値を渡します。
public function index($message)
{
$data = $message;
return view('user.index', $data);
}
index($message)
で$message
を引数にします。
そして、$message
にルートパラメータに記述した値が入っています。
resources/views
にあるuser/index.blade.php
に$data
を渡して表示させます。
##ビューで表示させる
コントローラーから送られた値をビューで表示させます
<p>{{message}}</p>
上記のコードをビューファイルに記述することで表示できます!!
これがルートパラメータを使って値を送る方法の簡単な例です
#クエリ文字列を使う
次に、クエリ文字列を使う方法について説明します
クエリ文字列は身近なところで言うと、検索機能などで使われています!
例えば、、
http://localhost:8000?serch=〇〇
などでアクセス時に値を渡す方法です
今回説明する方法は上で説明したものと同じような機能をクエリ文字列を使って実装していきます。
##ルーティングの記述
クエリ文字列を利用する時はルーティングには特別な記述はいりません
下記のような記述をしてください
Route::get{'/', 'UserController@index');
##コントローラでパラメータを拾う
URLに記述したクエリ文字列を取得し、ビューファイルに渡します。
public function index(Request $request)
{
$data = $request->message;
return view('user.index', $data);
}
Request $request
$requestをRequestクラスのインスタンスとして作成しています。
$request->message
URLのに記述したクエリ文字列(message=hello
)は
$request
の中にmessage
として入っています。
http://localhost:8000?message=hello
にアクセスすると表示されます。
#まとめ
基本的な2つの方法について説明しました。
今回は簡単な機能について説明しましたが、基本になります。
この説明を応用することで色々な機能が実装できるので挑戦してみてください!!
疑問、気になるところがございましたら、質問、コメントよろしくお願いします!!!