####ルーティングには上から順番に処理がされていくという規則があります。
例えば下記のようなコードの場合、
web.php
Route::get('/picture/{id}', 'UserController@show')->name('shop.show');
Route::get('/picture/edit', 'UserController@edit')->name('shop.edit');
『~/picture/edit』のURIを表示しようとすると
先に記載されているRoute::get('/picture/{id}', 'UserController@show')->name('shop.show');
こちらの処理がされます。
URI『~/picture/edit』の画面に遷移した際、
{id}の中にeditが入ってしまいます。カラムにeditという値が存在しない為、エラーが表示されうまく画面遷移がされません。
##解決策
####パラメータのあるルーティングは下にする
web.php
Route::get('/picture/edit', 'UserController@edit')->name('shop.edit');
Route::get('/picture/{id}', 'UserController@show')->name('shop.show');
こうすることで、
URIが『~picture/edit』に画面遷移が可能となり、editメソッドの処理が可能となります。