バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

プラグイン > 開発について > 検索機能の拡張について

開発について

新規スレッドを追加する

フラット表示 前のトピック | 次のトピック
投稿者 スレッド
Morpheus
投稿日時: 2018/2/28 11:28
対応状況: −−−
新米
登録日: 2018/2/28
居住地:
投稿: 3
Re: 検索機能の拡張について
ありがとうございます。

$qb = $this->createQueryBuilder('p')->andWhere('p.Status = 1');

// Price
$qb->addSelect('MIN(pcp.price02) as prc_min ');
$qb->innerJoin('p.ProductClasses', 'pcp');
$qb->groupBy('p');
$qb->andWhere( '(pcp.prc_min >= 2000 and pcp.prc_min < 5000)' );

// category
$qb
->innerJoin('p.ProductCategories', 'pct0')
->innerJoin('pct0.Category', 'c0')
->andWhere($qb->expr()->in('pct0.Category', ':Categories0'))
->setParameter('Categories0', $searchData['checkbox0']);


$qb
->innerJoin('p.ProductCategories', 'pct3')
->innerJoin('pct3.Category', 'c3')
->andWhere($qb->expr()->in('pct3.Category', ':Categories3'))
->setParameter('Categories3', $searchData['checkbox3']);

// stock
$qb->addSelect('(case when pcs.stock_unlimited = false and pcs.stock = 0 then 1 else 0 end) as HIDDEN stock_is_no ');
$qb->innerJoin('p.ProductClasses', 'pcs');
$qb->groupBy('p');
$qb->andWhere('pcs.stock_unlimited = true OR pcs.stock > 0');

// 価格低い順
$qb->addSelect('MIN(pc.price02) as HIDDEN price02_min');
$qb->innerJoin('p.ProductClasses', 'pc');
$qb->groupBy('p');
// postgres9.0以下は, groupBy('p.id')が利用できない
// mysqlおよびpostgresql9.1以上であればgroupBy('p.id')にすることで性能向上が期待できる.
// @see https://github.com/EC-CUBE/ec-cube/issues/1904
// $qb->groupBy('p.id');
$qb->orderBy('price02_min', 'ASC');
$qb->addOrderBy('p.note', 'DESC');

コードはこの上記のようになっています。
判定ロジックは取り除いております。
またこの価格に関わる部分を取り除く、もしくは条件から価格を外すと意図した通りの検索結果が表示されます。

※ProductRepositoryを継承し「getQueryBuilderBySearchData」メソッドを元に作成したメソッドになります。
フラット表示 前のトピック | 次のトピック


題名 投稿者 日時
   検索機能の拡張について Morpheus 2018/2/28 8:26
     Re: 検索機能の拡張について umebius 2018/2/28 8:35
       Re: 検索機能の拡張について Morpheus 2018/2/28 11:01
         Re: 検索機能の拡張について umebius 2018/2/28 11:09
         » Re: 検索機能の拡張について Morpheus 2018/2/28 11:28

 



ログイン


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

統計情報

総メンバー数は89,307名です
総投稿数は110,082件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2314
5
umebius
2085
6
yuh
1819
7
h_tanaka
1652
8
red
1570
9
mcontact
1304
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
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.