パラメータ指定方法
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の場合、そういうルーティングはしないはず?なのでこの基準で問題ないはず。