バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

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

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
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ペイメント

公式ストアEC-CUBE4系デザインテンプレート続々リリース中

統計情報

総メンバー数は71,640名です
総投稿数は101,383件です

投稿数ランキング

1
seasoft
7333
2
468
2999
3
AMUAMU
2712
4
nanasess
2147
5
umebius
2006
6
yuh
1612
7
red
1450
8
h_tanaka
1080
9
tsuji
936
10
fukap
907
11
shutta
835
12
tao_s
793
13 ramrun 789
14 karin 689
15 sumida 641
16
homan
633
17 DELIGHT 572
18
patapata
502
19
flealog
485
20 tonton 437


ネットショップの壺

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

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