バージョン選択

フォーラム

メニュー

オンライン状況

60 人のユーザが現在オンラインです。 (53 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 60
もっと...

サイト内検索

質問 > 管理機能 > 複数の商品で共有している商品画像が商品削除のとき一緒に削除されてしまう。商品画像は残したい

管理機能

新規スレッドを追加する

フラット表示 前のトピック | 次のトピック
投稿者 スレッド
Ahonda
投稿日時: 2021/4/19 11:34
対応状況: −−−
新米
登録日: 2021/4/14
居住地:
投稿: 4
Re: 複数の商品で共有している商品画像が商品削除のとき一緒に削除されてしまう。商品画像は残したい
コメントありがとうございます。

引用:

468さんは書きました:
確かにリンク先のソースには記述がありますね。
この記述を移植してくれば、ご要望の機能は実現できるのではないでしょうか?



当該削除処理に関連している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

 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は88,904名です
総投稿数は110,006件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2313
5
umebius
2085
6
yuh
1819
7
h_tanaka
1646
8
red
1570
9
mcontact
1296
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.