パラメータ指定方法
URLにIDが入る場合、function (App\User $user)で指定することができる。
Route::get('profile/{user}', function (App\User $user) {
//
});
コントローラーに書く
一般的にはコントローラーに切り出します。
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の場合、そういうルーティングはしないはず?なのでこの基準で問題ないはず。