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