質問 > フロント機能 > 商品一覧sortについて |
フロント機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
earth012 |
投稿日時: 2016/10/4 13:36
対応状況: −−−
|
半人前 登録日: 2016/10/4 居住地: 投稿: 28 |
商品一覧sortについて 商品一覧のsortで「価格」「新着順」に3で追加し、カテゴリ表示順を使用したいのですが、
ProductRepository.php ファイルに 以下のように追加すると // Order By // 価格順 ・ ・ ・ } else if (!empty($searchData['orderby']) && $searchData['orderby']->getId() == '3') { $qb ->leftJoin('p.ProductCategories', 'pct') ->leftJoin('pct.Category', 'c'); $qb->orderBy('pct.rank', 'ASC'); に追加すると SQlのテーブル dtb_product_categoryのrank が取得されます。 SQLのテーブル dtb_categoryのrankを取得するにはどう書けばよろしいでしょうか? また範囲をlevel= ○と指定する場合も併せて教えていただけますでしょうか? EC-CUBE 3.0.10 PHP 7.06 |
umebius |
投稿日時: 2016/10/4 15:11
対応状況: −−−
|
神 登録日: 2016/7/22 居住地: 投稿: 2085 |
Re: 商品一覧sortについて dtb_categoryのrankはc.rankになります。
範囲をlevel= ○と指定する場合は、 $qb->andWhere('c.level = ○');でいいと思います。
|
earth012 |
投稿日時: 2016/10/4 16:06
対応状況: −−−
|
半人前 登録日: 2016/10/4 居住地: 投稿: 28 |
Re: 商品一覧sortについて ご教授有難うございます。
解決しました。 |
umebius |
投稿日時: 2016/10/6 14:29
対応状況: −−−
|
神 登録日: 2016/7/22 居住地: 投稿: 2085 |
Re: 商品一覧sortについて よかったです!
QueryBuilderの使い方はこのあたりが参考になります。 http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/query-builder.html
|
earth012 |
投稿日時: 2016/10/7 2:07
対応状況: −−−
|
半人前 登録日: 2016/10/4 居住地: 投稿: 28 |
Re: 商品一覧sortについて ありがとうございます。
すみません、追加で質問ですが、 表示rank順に並べてさらに(かつ)価格順等他テーブル参照してsortするにはどう書けばよいでしょうか? |
umebius |
投稿日時: 2016/10/7 9:17
対応状況: −−−
|
神 登録日: 2016/7/22 居住地: 投稿: 2085 |
Re: 商品一覧sortについて joinして、addOrderByです。
$qb ->orderBy(...) ->leftJoin(...) ->addOrderBy(...);
|
earth012 |
投稿日時: 2016/10/12 15:04
対応状況: −−−
|
半人前 登録日: 2016/10/4 居住地: 投稿: 28 |
Re: 商品一覧sortについて 返信おそくなりました。
やりたいこと解決できてうれしいです。 ちなみにですが、というか関連で疑問でてきましてご教授お願いしたいのですが、 商品一覧sortではなく検索フォームで同じことをしたいのですが、できますでしょうか? ---- 検索フォームでカテゴリ初期選択「全ての商品」の状態で検索した場合の一覧表示をカテゴリ順かつ価格順にしたい ---- おそらく SearchProductType.php の40行目付近を修正すればいいのかと思うのですが、、、 $builder->add('mode', 'hidden', array( 'data' => 'search', )); $builder->add('category_id', 'entity', array( 'class' => 'Eccube\Entity\Category', 'property' => 'NameWithLevel', 'query_builder' => function (EntityRepository $er) { return $er ->createQueryBuilder('c') ->orderBy('c.rank', 'DESC'); }, 'empty_value' => '全ての商品', |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |