エンティティやその他オブジェクトにプロパティを追加するカスタマイズを行なった時にNoSuchPropertyExceptionが発生することがあります。
EC-CUBE/SymfonyではtwigからProduct.hogeのような形で呼び出したりform_widgetでフォームを出力する時によく見かけると思います。
Symfony\Component\PropertyAccess\Exception\NoSuchPropertyException
次のようなエラーが発生します。
Neither the property “hoge” nor one of the methods “getHoge()”, “Hoge()”, “isHoge()”, “hasHoge()”, “__get()” exist and have public access in class “Eccube\Entity\Product”.
EC-CUBE4では既存のエンティティにプロパティを追加カスタマイズする時にプロキシクラスからTraitを利用する方法が一般的になっています。
その時にプロキシクラスの生成を忘れているとNoSuchPropertyExceptionで怒られてしまいます。
$ php bin/console eccube:generate:proxies を実行してproxyクラスを生成してください。
EC-CUBEに関するお問い合わせ
[重要]現在公式にセキュリティサポートが切れていないPHPは8.1以上、MySQLは8.0以上で、対応しているEC-CUBEバージョンは4.2以上です。古いEC-CUBEを使っている方は適切なタイミングでバージョンアップをご検討ください。