質問 > フロント機能 > 商品レビューの多い順、レビュー評価の高い順に並べ替えたい |
フロント機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
YOHBUN |
投稿日時: 2019/7/11 14:43
対応状況: −−−
|
常連 登録日: 2016/12/20 居住地: 投稿: 69 |
商品レビューの多い順、レビュー評価の高い順に並べ替えたい EC CUBE 3.0.13
レビュー管理プラグイン https://www.ec-cube.net/products/detail.php?product_id=1065 をインストールし、商品レビューの投稿機能を追加しました。 商品一覧でレビューの多い順、レビュー評価の高い順に並べかえたいのですが、行き詰まってしまいました。 どなたか助けて頂けると幸いです。 ProductRepository.php //レビューの多い順 } else if (!empty($searchData['orderby']) && $searchData['orderby']->getId() == 9) { $qb->addSelect('COUNT(r.id) as HIDDEN review'); $qb->innerJoin('p.ProductClasses', 'pc'); $qb->leftJoin('p.ProductReview', 'r'); $qb->groupBy('p.id'); $qb->orderBy('review', 'DESC'); $qb->addOrderBy('p.id', 'ASC'); Eccube.Entity.Product.dcm.yml にProductReviewを追記して、 プラグインのEntityを読み込む記述がいるのかと思いましたが、 うまくいきません。 宜しくお願い致します。 |
nyorai |
投稿日時: 2019/7/12 13:40
対応状況: −−−
|
仙人 登録日: 2015/8/21 居住地: 投稿: 302 |
Re: 商品レビューの多い順、レビュー評価の高い順に並べ替えたい ProductとProdcutReviewはリレーションがないので、この記述ではjoinできないですね。
$qb->leftJoin(ProductReview::class, 'r', 'WITH', 'p.id = r.id'); のような書き方でどうでしょうか。 参考 https://www.tomcky.net/entry/2018/02/13/015617 https://blog.tai2.net/doctrine-join-with-syntax.html |
YOHBUN |
投稿日時: 2019/7/12 16:46
対応状況: −−−
|
常連 登録日: 2016/12/20 居住地: 投稿: 69 |
Re: 商品レビューの多い順、レビュー評価の高い順に並べ替えたい ありがとうございますm(_ _)m
} else if (!empty($searchData['orderby']) && $searchData['orderby']->getId() == 9) { $qb->addSelect('COUNT(r.id) as HIDDEN review'); $qb->innerJoin('p.ProductClasses', 'pc'); $qb->leftJoin('ProductReview::class', 'r', 'WITH', 'p.id = r.id'); $qb->groupBy('p.id'); $qb->orderBy('review', 'DESC'); // レビューの多い登録 $qb->addOrderBy('p.id', 'ASC'); // 品番(昇順) こちらですとこのようなエラーが出ました。。 ORMException in ORMException.php line 236: Unknown Entity namespace alias 'ProductReview'. |
YOHBUN |
投稿日時: 2019/7/12 19:38
対応状況: −−−
|
常連 登録日: 2016/12/20 居住地: 投稿: 69 |
Re: 商品レビューの多い順、レビュー評価の高い順に並べ替えたい ::classの部分はデータベースのテーブル名を入れればいいのでしょうか。
それでもやはりうまくいきませんでしたが。。 |
h_tanaka |
投稿日時: 2019/7/19 11:54
対応状況: −−−
|
神 登録日: 2016/7/22 居住地: 愛媛県 投稿: 1646 |
Re: 商品レビューの多い順、レビュー評価の高い順に並べ替えたい プラグインなのでこうですかね。
$qb->leftJoin('\Plugin\ProductReview\Entity\ProductReview', 'r', 'WITH', 'p.id = r.Product');
|
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |