バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > フロント機能 > 自作ランキング機能の表示について

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
yuorange
投稿日時: 2021/6/2 21:20
対応状況: −−−
新米
登録日: 2021/2/9
居住地:
投稿: 4
自作ランキング機能の表示について
[EC-CUBE] 4.0.5
[レンタルサーバ] さくらサーバー(開発はMAMP)
[OS] MAC OS Big sur
[PHP] 7.4.12
[データベース] Mysql
[WEBサーバ] Apache
[ブラウザ] Google Chrome
[導入プラグインの有無] 無料ランキングプラグイン(検証のため導入、使用はしていない)
[カスタマイズの有無]自作ランキング機能のため、src/Eccube/Repository/ProductRepository.phpに追記あり
[現象]お世話になっております。
仮のランキング機能を実装するため、src/Eccube/Repository/ProductRepository.phpに追記し、販売件数順に商品を表示する機能を作りました。しかし、表示したところ一位に表示されるのが、新規に登録された商品が表示され、2位から販売件数順に表示されてしまいました。

参考サイト
https://a-zumi.net/eccube4-product-order-by-sales/

実際に書いたコード
// 検証repository追加
    public function getQueryBuilderBySearchData2()
    {
        $qb = $this->createQueryBuilder('p')
            ->andWhere('p.Status = 1')
            ->setMaxResults(5);
        
        $qb2 = $this->orderItemRepository->createQueryBuilder("oi")
            ->select("COUNT(oi.Product)")
            // ->select('COALESCE(COUNT(oi.Product), 0)')
            ->where("oi.Product = p.id")
            ->groupBy("oi.Product");
            
        $qb->addSelect(sprintf('(%s) AS HIDDEN total', $qb2->getDql()))
            ->orderBy("total", "DESC");

        // return $this->queries->customize(QueryKey::PRODUCT_SEARCH, $qb, $searchData);
        // return $qb;
        // $query = $qb->getQuery()->orderBy();
        $query = $qb->getQuery();
        $products = $query->getResult();
        return $products;
    }


以前こちらのフォーラムで書いてあった記述
https://xoops.ec-cube.net/modules/newbb/viewtopic.php?topic_id=22958&forum=10
に基づき、selectをSUMに変えたり
参考にしたプラグインの記述を元に、
('COALESCE(COUNT(oi.Product), 0)')
と変更して検証しましたが、結果変わらずでした。
よろしければアドバイスいただければ幸いです。
よろしくお願いいたします。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

総メンバー数は88,284名です
総投稿数は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.