2
1

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 1 year has passed since last update.

laravelのroute()でルートモデルバインディングとクエリパラメータを持ったURLを生成する方法

Last updated at Posted at 2023-05-16

おそらくまたいつかやり方を忘れてしまうので忘備録として記事に残しました。

ルートモデルバインディングとクエリパラメータを持ったURLを生成する方法

  • route()の第二引数に配列として渡す
    (生成されるURL: localhost/sample/1?parameter=渡したいパラメータ)
route('sample', ['user' => $user, 'parameter' => '渡したいパラメータ']);

サンプルコード

ルーティング

Route::get('/user/{user}', SampleCotroller::class)->name('sample');

コントローラ

class SampleCotroller extends Controller
{
    public function __invoke(User $user)
    {
        return $user->name;
    }
}
  • ルートモデルバインディングのみのURL生成
    (生成されるURL: localhost/sample/1)
// userモデルのオブジェクトを渡している
route('sample', $user);
  • クエリパラメータのみを渡したURL生成
    (生成されるURL: localhost/sample?parameter=渡したいパラメータ)
route('sample', ['parameter' => '渡したいパラメータ']);

ルートモデルバインディングとは

  • laravelの機能でルーティングでコントローラを呼び出す際にモデルのidを渡すとそのコントローラ内でそのモデルが取得できて使用したりすることができる便利なもの

laravelのヘルパ関数 route()について

終わりに

  • クエリパラメータだけ、モデルバインディングだけのURL生成はよくやっていたのですが、同時に渡したい時があり少し迷ったので、同じ人のためになれば幸いです。
2
1
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
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?