EC-CUBE3やEC-CUBE4でEntityに関するカスタマイズを行っているときに Entity has to be managed or scheduled for removal for single computation というシステムエラーが発生することがあります。
システムエラーの原因は?
このシステムエラーの発生原因は広く見ると色々あるのですが、根本的にはpersistしていないエンティティオブジェクトがflushされた際に発生します。
エラーメッセージから原因を推測することが困難でなかなか解決に苦労することが多いです。
システムエラーが発生する例
$entity = new Entity();
$this->entityManager->flush($entity);
システムエラーが発生しない例
$entity = new Entity()
$this->entityManager->persist($entity);
$this->entityManager->flush($entity);
※現在のSymfonyではEntityオブジェクトを引数に指定してflushすることはDeprecated(非推奨)となっています。
EC-CUBEに関するお問い合わせ
[重要]現在公式にセキュリティサポートが切れていないPHPは8.1以上、MySQLは8.0以上で、対応しているEC-CUBEバージョンは4.2以上です。古いEC-CUBEを使っている方は適切なタイミングでバージョンアップをご検討ください。