バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > フロント機能 > 商品検索時の価格での絞り込みについて

フロント機能

新規スレッドを追加する

スレッド表示 | 古いものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
mackarel
投稿日時: 2019/4/22 13:33
対応状況: −−−
半人前
登録日: 2018/11/2
居住地:
投稿: 24
Re: 商品検索時の価格での絞り込みについて
ありがとうございます。
こちらでも入れ違いで確認しており、対策を講じてエラーは出なくなりました。

ただソートと組み合わせると別のエラー(ソートしたカラムがcount関数のdistinctにも指定される)が出たのでこれはまた別で対処していきます。

皆様ありがとうございました!
umebius
投稿日時: 2019/4/21 11:51
対応状況: −−−
登録日: 2016/7/22
居住地:
投稿: 2085
Re: 商品検索時の価格での絞り込みについて
商品一覧ページののページネーション作成時にwrap_queriesをtrueにすればhavingで大丈夫だと思います

参考記事
https://umebius.com/eccube/cannot-count-query-uses-clause-use-output-walkers-pagination/


----------------
EC-CUBEカスタマイズ・高速化・脆弱性対策・SEO ご相談ください。

2系・3系から4系へのバージョンアップ実績豊富

mackarel
投稿日時: 2019/4/16 14:23
対応状況: −−−
半人前
登録日: 2018/11/2
居住地:
投稿: 24
Re: 商品検索時の価格での絞り込みについて
ありがとうございます。

引用:
使うならhavingだと思います。

->andHaving('price02_min >= :priceLow')


そうですよね。
投稿に書いてなかったのですが、having(andhaving)も試してます。
ただ、以下のようなエラーが出てました。

引用:
Cannot count query that uses a HAVING clause. Use the output walkers for pagination


別のエラーと思い一旦検証からは外しておりました。
こちらを掘り下げたほうが良さそうですね。。。
mackarel
投稿日時: 2019/4/16 14:11
対応状況: −−−
半人前
登録日: 2018/11/2
居住地:
投稿: 24
Re: 商品検索時の価格での絞り込みについて
ありがとうございます。

引用:
Doctrineでは、HIDDENを記述する事でその辺りが処理できるものなのでしょうか?


結果論ではありますが、件のwhere句を除くと処理はできているようなので実際は処理できているのかどうかわからない状態です。

このあたりはまだ詳細まで確認できておりません。。。
umebius
投稿日時: 2019/4/16 11:02
対応状況: −−−
登録日: 2016/7/22
居住地:
投稿: 2085
Re: 商品検索時の価格での絞り込みについて
使うならhavingだと思います。

->andHaving('price02_min >= :priceLow')


----------------
EC-CUBEカスタマイズ・高速化・脆弱性対策・SEO ご相談ください。

2系・3系から4系へのバージョンアップ実績豊富

468
投稿日時: 2019/4/16 8:42
対応状況: −−−
登録日: 2008/10/26
居住地:
投稿: 3217
Re: 商品検索時の価格での絞り込みについて
回答ではなくて、申し訳ないのですが、
HIDDENで定義した項目は(今回はprice02_min)whereでも利用できるものなのでしょうか?
色々調べてみてorderに指定したサンプルコードは多く見かけるのですが
whereに利用している記述を見かけなかったので...。

SQLで考えるとサブクエリを用いる形になるかと思うのですが、
Doctrineでは、HIDDENを記述する事でその辺りが処理できるものなのでしょうか?
もし、HIDDENがそのような機能を持っていない場合は、サブクエリに対応する記述が必要になってくるのではないかと思います。


----------------
株式会社シロハチ
■ECCUBE2系、3系構築カスタマイズご相談ください。
EC-CUBE3マニュアル
blog

mackarel
投稿日時: 2019/4/15 16:29
対応状況: −−−
半人前
登録日: 2018/11/2
居住地:
投稿: 24
商品検索時の価格での絞り込みについて
以前他の方が投稿されている
https://xoops.ec-cube.net/modules/newbb/viewtopic.php?topic_id=20078&forum=17
こちらの質問内容と似ているのですが、

ProductRepositoryに価格による絞り込みのロジックを追記したのですが、
引用:
Notice: Undefined index: price02_min

と表示されます。
該当のプログラムは以下です。
引用:

if (isset($searchData['price_range_low']) && $searchData['price_range_low']->getId() > 0) {
$qb->addSelect('MIN(pc.price02) as HIDDEN price02_min')
->innerJoin('p.ProductClasses', 'pc')
->andWhere('pc.visible = true')
->andWhere('price02_min >= :priceLow')
->groupBy('p.id')
->setParameter('priceLow', $searchData['price_range_low']);
}


「price_range_low」が絞り込み価格の下限金額になります。

引用:
->andWhere('price02_min >= :priceLow')


引用:
->andWhere('pc.price02_min >= :priceLow')

に変更すると
引用:
Error: Class Eccube\Entity\ProductClass has no field or association named price02_min

と表示されます。こっちは納得できました。ProductClassに確かにprice02_minというプロパティはないので。

これらのエラーを解消して価格による絞り込みができるようにしたいのですが、どなたかおわかりになりますでしょうか・・・?

よろしくお願いいたします。
スレッド表示 | 古いものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

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