バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

バグ報告 > 管理機能 > 受注登録の商品検索でエラーが表示されます

管理機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
kurabiz
投稿日時: 2019/10/9 13:04
対応状況: 確認中
半人前
登録日: 2019/7/3
居住地:
投稿: 20
受注登録の商品検索でエラーが表示されます
▼テンプレート
[EC-CUBE] ECCUBE4
[レンタルサーバ]Xサーバー
[現象]
受注登録時の注文ら商品を追加する際、(受注管理>受注登録>商品を追加>商品名・商品ID・商品コード)
商品名だと検索で表示されるが、
商品ID、商品コードだとエラーのポップアップが出て
検索結果が表示されない場合がある。


▼エラーコード
[2019-10-07 17:39:12] admin.ERROR [7b75ef73bc9ec1e0e038ac21da41957a] [5294ce3] [1] [Eccube\Log\Logger:log:64] - システムエラーが発生しました。 ["The discriminator column \"discriminator_type\" is missing for \"Eccube\\Entity\\ClassCategory\" using the DQL alias \"cc2\".","/home/ルート名/xxxx.jp/public_html/vendor/doctrine/orm/lib/Doctrine/ORM/Internal/Hydration/HydrationException.php",69,"#0 /home/xxxx/xxxx.jp/public_html/vendor/doctrine/orm/lib/Doctrine/ORM/Internal/Hydration/ObjectHydrator.php(246): Doctrine\\ORM\\Internal\\Hydration\\HydrationException::missingDiscriminatorColumn('Eccube\\\\Entity\\\\C...', 'discriminator_t...', 'cc2')\n#1 /home/xxxx/xxxx.jp/public_html/vendor/doctrine/orm/lib/Doctrine/ORM/Internal/Hydration/ObjectHydrator.php(367): Doctrine\\ORM\\Internal\\Hydration\\ObjectHydrator->getEntity(Array, 'cc2')\n#2 /home/xxxx/xxxx.jp/public_html/vendor/doctrine/orm/lib/Doctrine/ORM/Internal/Hydration/ObjectHydrator.php(162): Doctrine\\ORM\\Internal\\Hydration\\ObjectHydrator->hydrateRowData(Array, Array)\n#3 /home/xxxx/xxxx.jp/public_html/vendor/doctrine/orm/lib/Doctrine/ORM/Internal/Hydration/AbstractHydrator.php(152): Doctrine\\ORM\\Internal\\Hydration\\ObjectHydrator->hydrateAllData()\n#4 /home/xxxx/xxxx.jp/public_html/vendor/doctrine/orm/lib/Doctrine/ORM/AbstractQuery.php(976): Doctrine\\ORM\\Internal\\Hydration\\AbstractHydrator->hydrateAll(Object(Doctrine\\DBAL\\Driver\\PDOStatement), Object(Doctrine\\ORM\\Query\\ResultSetMapping), Array)\n#5 /home/xxxx/xxxx.jp/public_html/vendor/doctrine/orm/lib/Doctrine/ORM/AbstractQuery.php(922): Doctrine\\ORM\\AbstractQuery->executeIgnoreQueryCache(NULL, NULL)\n#6 /home/xxxx/xxxx.jp/public_html/vendor/doctrine/orm/lib/Doctrine/ORM/AbstractQuery.php(803): Doctrine\\ORM\\AbstractQuery->execute(NULL, NULL)\n#7 /home/xxxx/xxxx.jp/public_html/src/Eccube/Repository/ProductRepository.php(84): Doctrine\\ORM\\AbstractQuery->getSingleResult()\n#8 /home/xxxx/xxxx.jp/public_html/src/Eccube/Controller/Admin/Order/EditController.php(610): Eccube\\Repository\\ProductRepository->findWithSortedClassCategories(11)\n#9 /home/xxxx/xxxx.jp/public_html/vendor/symfony/http-kernel/HttpKernel.php(151): Eccube\\Controller\\Admin\\Order\\EditController->searchProduct(Object(Symfony\\Component\\HttpFoundation\\Request), 1, Object(Paginator_f262b94))\n#10 /home/xxxx/xxxx.jp/public_html/vendor/symfony/http-kernel/HttpKernel.php(68): Symfony\\Component\\HttpKernel\\HttpKernel->handleRaw(Object(Symfony\\Component\\HttpFoundation\\Request), 1)\n#11 /home/xxxx/xxxx.jp/public_html/vendor/symfony/http-kernel/Kernel.php(200): Symfony\\Component\\HttpKernel\\HttpKernel->handle(Object(Symfony\\Component\\HttpFoundation\\Request), 1, true)\n#12 /home/xxxx/xxxx.jp/public_html/index.php(74): Symfony\\Component\\HttpKernel\\Kernel->handle(Object(Symfony\\Component\\HttpFoundation\\Request))\n#13 {main}"] [POST, /kanri/order/search/product, 125.199.240.94, https://www.xxxx.jp/kanri/order/new, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36]
nanasess
投稿日時: 2019/10/10 10:32
対応状況: −−−
登録日: 2006/9/9
居住地:
投稿: 2303
Re: 受注登録の商品検索でエラーが表示されます
dtb_class, dtb_classcategory, dtb_product, dtb_product_class に discriminator_type というカラムがあると思いますが、該当商品はどのようなデータが入っていますか?
kurabiz
投稿日時: 2019/10/10 11:56
対応状況: −−−
半人前
登録日: 2019/7/3
居住地:
投稿: 20
Re: 受注登録の商品検索でエラーが表示されます
大河内さま

ご確認ありがとうございます!

こちらの情報で合っていますでしょうか。
該当商品以外も全て同じデータが入っています。
dtb_class が見つからなかったのですが、 dtb_class_nameで問題無いでしょうか?

dtb_product → product
dtb_product_class → productclass
dtb_classcategory → classcategory
dtb_class_name → classname
nanasess
投稿日時: 2019/10/10 12:18
対応状況: −−−
登録日: 2006/9/9
居住地:
投稿: 2303
Re: 受注登録の商品検索でエラーが表示されます
正常っぽいですね。。
エラーの内容からすると、 ClassCategory の discriminator_type が正常に取得できないようです。
全ての商品ではなく、特定の商品で再現する感じでしょうか。
kurabiz
投稿日時: 2019/10/10 15:59
対応状況: −−−
半人前
登録日: 2019/7/3
居住地:
投稿: 20
Re: 受注登録の商品検索でエラーが表示されます
一部の商品で再現する状況です。
色々と試して見た所、規格が1つのみ設定されている商品がエラーになるようです。
以下の商品では商品コードでもエラーが出ることなく検索できました。

▼ 商品コードで検索できる商品
・規格が設定されていない商品
・規格が2つ設定されている商品
・商品コードと商品IDが同じ数字の場合、その数字で検索した場合は検索できる

調べていくうちに判明しましたが、別の商品の商品コードと数字が被ってない場合は商品IDであれば正常に検索できるようでした。
商品名 ○
商品ID ○
商品コード ×
mackarel
投稿日時: 2020/2/14 16:16
対応状況: −−−
半人前
登録日: 2018/11/2
居住地:
投稿: 24
Re: 受注登録の商品検索でエラーが表示されます
僕も同じ現象に出くわしました。
代替方法で解決しましたので共有いたします。

僕の場合、検索時に指定した商品コードが完全一致するものがあった場合に限りエラーが出ました。

その際、例えばAdmin/Order/EditController::searchProductの617行目辺りの

foreach ($Products as $Product) {
                /* @var $builder \Symfony\Component\Form\FormBuilderInterface */
                $builder = $this->formFactory->createNamedBuilder('', AddCartType::class, null, [
                    'product' => $this->productRepository->findWithSortedClassCategories($Product->getId()),
                ]);
                $addCartForm = $builder->getForm();
                $forms[$Product->getId()] = $addCartForm->createView();
            }


の中でdump($Product);すると、商品コードが完全一致するものはProductClassesの中身が完全一致したものしかなく、本来ある他のものが入っていませんでした。ここが原因っぽかったので、$builderの生成前で

$tmpProduct = $this->productRepository->find($Product->getId());
                $productClass = $this->productClassRepository->findBy(['Product' => $Product]);
                $tmpProduct->setProductClasses($productClass);


と改めてProductClassを取ってきて入れ直してあげるとエラーが回避できました。
なぜか$Productに直接入れなくても行けました。。。

時間が経ってしまってますがご参考になればと思います。
h_tanaka
投稿日時: 2020/3/31 15:13
対応状況: −−−
登録日: 2016/7/22
居住地: 愛媛県
投稿: 1610
Re: 受注登録の商品検索でエラーが表示されます
私も同じ問題にあたりました。

mackarel さんのコードを参考に、商品規格Entityを取得し直すだけで、なぜかどこにも set していないのに、解消されました。

src/Eccube/Controller/Admin/Order/EditController.php
searchProduct() 内に追加。
foreach ($Products as $Product) {
    // なぜかエラーになるので再取得 The discriminator column "discriminator_type" is missing for "Eccube\Entity\ClassCategory" using the DQL alias "cc2"
    $productClasses = $this->productClassRepository->findBy(['Product' => $Product]);    // ★追加
    /* @var $builder \Symfony\Component\Form\FormBuilderInterface */
    $builder = $this->formFactory->createNamedBuilder('', AddCartType::class, null, [
        'product' => $this->productRepository->findWithSortedClassCategories($Product->getId()),
    ]);
    $addCartForm = $builder->getForm();
    $forms[$Product->getId()] = $addCartForm->createView();
}


----------------
EC-CUBE 《プラチナ》ランクパートナー
トエビス株式会社 田中 宏典
EC-CUBEの機能やデザインのカスタマイズ承ります。

スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

総メンバー数は88,281名です
総投稿数は109,688件です

投稿数ランキング

1
seasoft
7365
2
468
3217
3
AMUAMU
2712
4
nanasess
2303
5
umebius
2085
6
yuh
1818
7
h_tanaka
1610
8
red
1567
9
mcontact
1240
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
796
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.