3
0

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 3 years have passed since last update.

Laravelエラー:Argument 1 passed to App\Http\Controllers\GroupController::index() must be of the type int, string givenが出た時

Posted at
スクリーンショット 2020-03-27 13.29.23.png
TypeError
Argument 1 passed to App\Http\Controllers\GroupController::index() must be of the type int, string given

このエラーについて、同じエラーで困ってる方がいたら確認して欲しいポイントをお伝えしていきたいと思います。

#web.phpのルーティング順序を疑ってみよう

前者がエラーが出ていた時のルーティングで、後者がエラーが消えた時のルーティングです。
書き順が違います。
本来は/groups/newを呼び出したいアクションでもnew{id}だと勘違いして、/groups/{id}を呼んでしまっていたようです。laravelは仕様で上に書いてある設定を先に読み込んでしまいます。
もっとスマートな解放がlaravalには用意されていると思うのですが、今回は簡単に順序を入れ替えてエラー対処しました。

web.php
//前者
//グループ一覧表示
Route::get('/groups/{id}', 'GroupController@index')->name('groups.index'); 
//グループを新規作成ページを表示
Route::get('/groups/new', 'GroupController@new')->name('group.new');
//グループを新規作成
Route::post('/groups/new', 'GroupController@store');

web.php
//後者
//グループを新規作成ページを表示
Route::get('/groups/new', 'GroupController@new')->name('group.new');
//グループを新規作成
Route::post('/groups/new', 'GroupController@store');
//グループ一覧表示
Route::get('/groups/{id}', 'GroupController@index')->name('groups.index'); 
///groups/{id}のルーティングを一番下に移動
3
0
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
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?