> フロント機能 > ソート順の追加のためのJOINの方法 |
フロント機能
フラット表示 | 前のトピック | 次のトピック |
投稿者 | スレッド |
---|---|
nakunaru |
投稿日時: 2016/1/18 23:55
対応状況: −−−
|
半人前 登録日: 2015/3/16 居住地: 投稿: 14 |
ソート順の追加のためのJOINの方法 お世話になります。
商品一覧画面でのソート順を追加するために以下の設定を行いました。 ・mtb_product_list_order_byに1行追加(id:3 name:売り上げ順 rank:3) ・ProductRepository.php の // Order By // 価格順 の部分を以下のように変更(else ifブロックの追加) // Order By // 価格順 if (!empty($searchData['orderby']) && $searchData['orderby']->getId() == '1') { //@see http://doctrine-orm.readthedocs.org/en/latest/reference/dql-doctrine-query-language.html $qb->addSelect('MIN(pc.price02) as HIDDEN price02_min'); $qb->innerJoin('p.ProductClasses', 'pc'); $qb->groupBy('p'); $qb->orderBy('price02_min', 'ASC'); // 新着順 } else if (!empty($searchData['orderby']) && $searchData['orderby']->getId() == '2') { $qb->orderBy('p.create_date', 'DESC'); // 売り上げ順 } else if (!empty($searchData['orderby']) && $searchData['orderby']->getId() == '3') { $qb->addSelect('COUNT(od.order_id) as HIDDEN ocount'); $qb->innerJoin('p.OrderDetail', 'od'); $qb->groupBy('p'); $qb->orderBy('ocount', 'DESC'); } else { ・・・・後略・・・・ この状態でソート処理を走らせると以下のエラーが発生します。 QueryException in QueryException.php line 63: [Semantical Error] line 0, col 100 near 'od WHERE p.Status': Error: Class Eccube\Entity\Product has no association named OrderDetail 意図としては、過去の売り上げ点数の降順でソートした結果を得たいのですが、Doctrineの仕組みがまだ良くわかっておらず手間取っております。 おそらくテーブル同士の関連性の設定ができていないということだと思うのですが、どの辺りを触ればよいか教えてください。 宜しくお願い致します。 |
フラット表示 | 前のトピック | 次のトピック |
題名 | 投稿者 | 日時 |
---|---|---|
» ソート順の追加のためのJOINの方法 | nakunaru | 2016/1/18 23:55 |
Re: ソート順の追加のためのJOINの方法 | tacky | 2016/1/19 16:11 |
Re: ソート順の追加のためのJOINの方法 | nakunaru | 2016/1/20 15:29 |
Re: ソート順の追加のためのJOINの方法 | tacky | 2016/1/20 16:20 |
Re: ソート順の追加のためのJOINの方法 | nakunaru | 2016/1/20 22:16 |