#はじめに#
URLにパラメータを渡して、それをコントローラーで受け取る方法をメモしておきます。
Webページを作るのにとても便利です。
#view#
まずはリンクを設定します。
bladeテンプレートにこのように書いていきます。
<a href="{{ route('index',['id' => 1]) }}">テスト</a>
route関数の第二引数にこのように指定していきます。
ここでは直接数字を入れていますが、データベースから取得してきたデータのIDなどを入れるパターンが多いと思います。
#ルーティング#
web.phpにはルーティングを書いていきます。
Route::get('/index/{id}', [HomeController::class, 'index'])->name('index');
URLには先ほど bladeテンプレートのaタグで指定したidが入ります。
ルーティングのURlが指定されてリクエストが送られると、コントローラーのメソッドが呼び出されます。
#controller#
コントローラーのメソッドはこのように記述します。
public function index($id)
{
$post = Post::where('id',$id)->first();
return view('index',compact('post'));
}
あくまで一例ですが、こんな感じで取得してきたidをEloquentのwhere句に使ったりすることで、特定のデータを取得することができます。
あとはview側でテンプレートを使って煮るなり焼くなりするだけです!
テンプレートの書き方は省略します。
#終わりに#
書き方いつも迷うので備忘録として書きました。
Webページの詳細をアイテムごとに表示したりするのに便利なので、使い方を覚えておいて損はないと思います!