Controllerを追加したときに下記のエラーが出る場合の対処方法。

Could not resolve argument $id of “Customize\Controller\Admin\HogeController::edit()”, maybe you forgot to register the controller as a service or missed tagging it with the “controller.service_arguments”?

Controllerに渡す引数は、Routeの変数と一致するか、型が解決できる必要があります。

修正前

/**
* @Route("/%eccube_admin_route%/Hoge/new", name="admin_hoge_new")
* @Route("/%eccube_admin_route%/Hoge/{id}/edit", name="admin_hoge_edit")
* @Template("@admin/hoge_edit.twig")
*
* @return array|\Symfony\Component\HttpFoundation\RedirectResponse
*/
public function edit(Request $request, $id)

このエラーの場合、新規登録画面にアクセスしたときに$idが何の変数かわからないことが問題です。デフォルト値を設定すれば解消します。

修正後

/**
* @Route("/%eccube_admin_route%/Hoge/new", name="admin_hoge_new")
* @Route("/%eccube_admin_route%/Hoge/{id}/edit", name="admin_hoge_edit")
* @Template("@admin/hoge_edit.twig")
*
* @return array|\Symfony\Component\HttpFoundation\RedirectResponse
*/
public function edit(Request $request, $id = null)
日本発!ECオープンプラットフォーム「EC-CUBE」 EC-CUBEゴールドパートナー EC-CUBEは株式会社イーシーキューブの商標です

EC-CUBEカスタマイズに関するお問い合わせはこちら


    [重要]現在公式にセキュリティサポートが切れていないPHPは8.1以上、MySQLは8.0以上で、対応しているEC-CUBEバージョンは4.2以上です。古いEC-CUBEを使っている方は適切なタイミングでバージョンアップをご検討ください。

    EC-CUBEバージョンアップ