質問 > 管理機能 > 複数の商品で共有している商品画像が商品削除のとき一緒に削除されてしまう。商品画像は残したい |
管理機能
フラット表示 | 前のトピック | 次のトピック |
投稿者 | スレッド |
---|---|
Ahonda |
投稿日時: 2021/4/19 11:34
対応状況: −−−
|
新米 登録日: 2021/4/14 居住地: 投稿: 4 |
Re: 複数の商品で共有している商品画像が商品削除のとき一緒に削除されてしまう。商品画像は残したい コメントありがとうございます。
引用:
当該削除処理に関連している2つのファイル(CsvImportController.php とProductController.php )をHistoryを参考に書き換えおよび差し替えを試してみましたが実現できず、またエラーも発生してしまいました。 1.commitされたNov 12, 2020のファイルで書き換え https://github.com/EC-CUBE/ec-cube/commit/8b42ca6e5405e6f42c2adbf77fecde95e5a1e8fd#diff-c9f3c3acc432b420e3909db1f3a521ecdf21f3e951a981c785830ee7dbcfcb35 productImageRepositoryというものを追加し、そこに商品画像のファイル名を入れておいて、削除するときにFindで比較する処理のようです。 →実現できず画像は削除されたまま。さらに管理画面の「商品CSV登録」という項目が開けなくなるというエラーも発生。 2.4.1beta2に採用されているファイルに差し替え →1と同様。 3.エラーログの確認 CsvImportController.phpファイルに書かれている__construct()というPublic関数は、追記したProductImageRepositoryのインスタンスでなければならないのに、キャッシュの中のgetCsvImportController2Service.phpファイルで呼ばれているものはそうなっていない、ということかと思います。(違うかな?) getCsvImportController2Service.phpファイルの15行目ではいろいろなRepositoryが出てきますが、追記したproductImageRepositoryの記載がありません。getCsvImportController2Service.phpは自動生成されているので、おそらく別のところでこのgetCsvImportController2Service.phpファイルにproductImageRepositoryを書き込む必要があるのでしょう。 Cache/prodディレクトリの中には「・・・generator.php」という名前のファイルもあることから、generateする仕組みについて調べる必要がありそうです。ちょっと大変だ 「Eccube repository」とググると自動的に生成される仕組みがあるようですね。 以下、エラーログです。 [2021-04-19 10:52:15] admin.ERROR [a6321647] [c60cd5a] [1] [Eccube\Log\Logger:log:64] - システムエラーが発生しました。 ["Type error: Argument 6 passed to Eccube\\Controller\\Admin\\Product\\CsvImportController::__construct() must be an instance of Eccube\\Repository\\ProductImageRepository, instance of Eccube\\Repository\\Master\\ProductStatusRepository given, called in /var/www/html/var/cache/prod/ContainerRxfcexj/getCsvImportController2Service.php on line 15","/var/www/html/src/Eccube/Controller/Admin/Product/CsvImportController.php",126,"#0 /var/www/html/var/cache/prod/ContainerRxfcexj/getCsvImportController2Service.php(15): Eccube\\Controller\\Admin\\Product\\CsvImportController->__construct(Object(Eccube\\Repository\\DeliveryDurationRepository), Object(Eccube\\Repository\\Master\\SaleTypeRepository), Object(Eccube\\Repository\\TagRepository), Object(Eccube\\Repository\\CategoryRepository), Object(Eccube\\Repository\\ClassCategoryRepository), Object(Eccube\\Repository\\Master\\ProductStatusRepository), Object(Eccube\\Repository\\ProductRepository), Object(TaxRuleRepository_f7111db), Object(Eccube\\Repository\\BaseInfoRepository), Object(Symfony\\Component\\Validator\\Validator\\RecursiveValidator))\n#1 /var/www/html/var/cache/prod/ContainerRxfcexj/EccubeProdProjectContainer.php(2094): require('/var/www/html/v...')\n#2 /var/www/html/vendor/symfony/dependency-injection/Container.php(304): ContainerRxfcexj\\EccubeProdProjectContainer->load('getCsvImportCon...')\n#3 /var/www/html/vendor/symfony/http-kernel/Controller/ContainerControllerResolver.php(96): Symfony\\Component\\DependencyInjection\\Container->get('Eccube\\\\Controll...')\n#4 /var/www/html/vendor/symfony/framework-bundle/Controller/ControllerResolver.php(57): Symfony\\Component\\HttpKernel\\Controller\\ContainerControllerResolver->instantiateController('Eccube\\\\Controll...')\n#5 /var/www/html/vendor/symfony/http-kernel/Controller/ControllerResolver.php(182): Symfony\\Bundle\\FrameworkBundle\\Controller\\ControllerResolver->instantiateController('Eccube\\\\Controll...')\n#6 /var/www/html/vendor/symfony/http-kernel/Controller/ContainerControllerResolver.php(63): Symfony\\Component\\HttpKernel\\Controller\\ControllerResolver->createController('Eccube\\\\Controll...')\n#7 /var/www/html/vendor/symfony/framework-bundle/Controller/ControllerResolver.php(43): Symfony\\Component\\HttpKernel\\Controller\\ContainerControllerResolver->createController('Eccube\\\\Controll...')\n#8 /var/www/html/vendor/symfony/http-kernel/Controller/ControllerResolver.php(89): Symfony\\Bundle\\FrameworkBundle\\Controller\\ControllerResolver->createController('Eccube\\\\Controll...')\n#9 /var/www/html/vendor/symfony/http-kernel/Controller/ContainerControllerResolver.php(41): Symfony\\Component\\HttpKernel\\Controller\\ControllerResolver->getController(Object(Symfony\\Component\\HttpFoundation\\Request))\n#10 /var/www/html/vendor/symfony/http-kernel/HttpKernel.php(134): Symfony\\Component\\HttpKernel\\Controller\\ContainerControllerResolver->getController(Object(Symfony\\Component\\HttpFoundation\\Request))\n#11 /var/www/html/vendor/symfony/http-kernel/HttpKernel.php(68): Symfony\\Component\\HttpKernel\\HttpKernel->handleRaw(Object(Symfony\\Component\\HttpFoundation\\Request), 1)\n#12 /var/www/html/vendor/symfony/http-kernel/Kernel.php(200): Symfony\\Component\\HttpKernel\\HttpKernel->handle(Object(Symfony\\Component\\HttpFoundation\\Request), 1, true)\n#13 /var/www/html/index.php(76): Symfony\\Component\\HttpKernel\\Kernel->handle(Object(Symfony\\Component\\HttpFoundation\\Request))\n#14 {main}"] [GET,****] |
フラット表示 | 前のトピック | 次のトピック |
題名 | 投稿者 | 日時 |
---|---|---|
複数の商品で共有している商品画像が商品削除のとき一緒に削除されてしまう。商品画像は残したい | Ahonda | 2021/4/14 13:02 |
Re: 複数の商品で共有している商品画像が商品削除のとき一緒に削除されてしまう。商品画像は残したい | 468 | 2021/4/15 9:37 |
Re: 複数の商品で共有している商品画像が商品削除のとき一緒に削除されてしまう。商品画像は残したい | Ahonda | 2021/4/15 12:44 |
Re: 複数の商品で共有している商品画像が商品削除のとき一緒に削除されてしまう。商品画像は残したい | 468 | 2021/4/16 10:40 |
» Re: 複数の商品で共有している商品画像が商品削除のとき一緒に削除されてしまう。商品画像は残したい | Ahonda | 2021/4/19 11:34 |
Re: 複数の商品で共有している商品画像が商品削除のとき一緒に削除されてしまう。商品画像は残したい | 468 | 2021/4/19 18:24 |
Re: 複数の商品で共有している商品画像が商品削除のとき一緒に削除されてしまう。商品画像は残したい | Ahonda | 2021/4/20 10:35 |