results.create
のルート名が2つ定義されてるから。
Route::group(['prefix' => 'groups/{id}'], function() {
Route::get('create', [ResultController::class, 'create'])->name('results.create');
});
Route::resource('results', ResultController::class, [ 'only' => ['create', 'show', 'edit', 'update']]);
Route::resourceを使ったらresults.create
、results.show
などが自動的に定義される。
この状態でのroute('results.create', $group->id)
はどっちが使われるか分からないけどおそらく後から書いてる方。
idがないので生成されるURLはhttp://127.0.0.1:8000/results/create?1
ResultController@createにidが渡されてないので質問のエラーとなる。
bladeの確認は自分の書いたコードではなく「レンダリングされた生のhtmlを確認する」。
これをやっていればresults/create?1
を見て期待と違う動作をしていてどこか間違えてると気付く。
Laravel初心者の行動はなぜかみんな同じ。「Laravel使うよりも前に身に付けてて当然の基礎知識」がごっそり抜けてる。
教えてる側が上級者の場合。常識すぎてわざわざ教えない。
教えてる側が初心者の場合。本人も分かってないので教えられない。今のLaravel界隈にいるのはほとんどこっち側。onclick="window.location=
なんて変なことしてる時点で初心者が教えてる間違った情報に騙されてる。
基礎がないままLaravelだけ覚えようとしても使えるようには絶対にならない。