LoginSignup
0
2

More than 5 years have passed since last update.

【Laravel】ルーティング時のパラメータ指定方法

Posted at

パラメータ指定方法

URLにIDが入る場合、function (App\User $user)で指定することができる。

web.php
Route::get('profile/{user}', function (App\User $user) {
    //
});

コントローラーに書く

一般的にはコントローラーに切り出します。

UserController.php
public function edit(Request $request, User $user)
{
    //
}

これでidごとのuser編集画面に飛ぶことができます。

user一覧ページは?

user一覧ページにpublic function index(Request $request, User $user)というミスをしました。
indexページは個別にidを取得することがないので、不要です。
indexメソッドでは個別の$userではなく、$usersを使うことが多いので、
$users = User::all();を記述すればOK

storeは個別だよね?

store(Userの新規追加)は個別に追加するよね?という疑問。
public function store(Request $request, User $user)

これも単純な話なんだけど、これから新規追加する、つまり現時点ではuserはいないということなので、指定のしようがないということになる。

判断基準は?

User $userをいつ使うべきかという判断基準は、urlに{user}があるかどうか。でいいと思う。
indexやstoreにパラメータはないし、editにはあるはず。

Railsだとurlにパラメータをつけずにcurrent_userでログインしているuserを取得できたので、ちょっとごちゃまぜになっていた。

Laravelの場合、そういうルーティングはしないはず?なのでこの基準で問題ないはず。

0
2
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
0
2