LoginSignup
1
3

More than 1 year has passed since last update.

【Laravel】ルートパラメータの渡し方

Posted at

はじめに

 URLにパラメータを渡して、それをコントローラーで受け取る方法をメモしておきます。
Webページを作るのにとても便利です。

view

まずはリンクを設定します。
bladeテンプレートにこのように書いていきます。

view.blade.php
<a href="{{ route('index',['id' => 1]) }}">テスト</a>

route関数の第二引数にこのように指定していきます。
ここでは直接数字を入れていますが、データベースから取得してきたデータのIDなどを入れるパターンが多いと思います。

ルーティング

web.phpにはルーティングを書いていきます。

web.php
Route::get('/index/{id}', [HomeController::class, 'index'])->name('index');

URLには先ほど bladeテンプレートのaタグで指定したidが入ります。
ルーティングのURlが指定されてリクエストが送られると、コントローラーのメソッドが呼び出されます。

controller

コントローラーのメソッドはこのように記述します。

controller.php
public function index($id)
{
    $post = Post::where('id',$id)->first();
    return view('index',compact('post'));
}

あくまで一例ですが、こんな感じで取得してきたidをEloquentのwhere句に使ったりすることで、特定のデータを取得することができます。

あとはview側でテンプレートを使って煮るなり焼くなりするだけです!
テンプレートの書き方は省略します。

終わりに

書き方いつも迷うので備忘録として書きました。
Webページの詳細をアイテムごとに表示したりするのに便利なので、使い方を覚えておいて損はないと思います!

1
3
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
1
3