バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

プラグイン > 開発について > QueryBuilder に innerJoin されているかどうかを判定したい

開発について

新規スレッドを追加する

フラット表示 前のトピック | 次のトピック
投稿者 スレッド
h_tanaka
投稿日時: 2017/5/23 14:22
対応状況: −−−
登録日: 2016/7/22
居住地: 愛媛県
投稿: 1651
QueryBuilder に innerJoin されているかどうかを判定したい
EC-CUBE 3.0.10

商品検索時に商品種別に対してフィルターをかけたいのですが、プラグイン側で ProductClasses に対してleftJoinしようとすると全商品検索(カテゴリー指定なし)のときにエラーになります。

src/Eccube/Repository/ProductRepository.php
において、カテゴリーを指定していないときは ProductClasses をinnerJoinしていないためだと思われます。

プラグイン側で、QueryBuilder に ProductClasses をinnerJoinしているかどうかを判定することは可能でしょうか?

エラーメッセージ
QueryException in QueryException.php line 63:
[Semantical Error] line 0, col 50 near '.ProductType': Error: Identification Variable pc used in join path expression but was not defined before.

event.yml
front.product.index.search:
    - [onRenderProductIndexSearch, NORMAL]


Event.php

    public function onRenderProductIndexSearch(EventArgs $event)
    {
        $app = $this->app;
        $searchData = $event->getArgument('searchData');
        $qb = $event->getArgument('qb');

        // 商品種別で絞り込み
        $qb
            ->leftJoin('pc.ProductType', 'pt')
            ->andWhere('pt.id!=:id')
            ->setParameter('id', 1);
    }


ちなみに、EC-CUBE 3.0.14 ではなぜかエラーが発生せず問題なくフィルタリングできました。


----------------
EC-CUBE 《プラチナ》ランクパートナー
トエビス株式会社 田中 宏典
EC-CUBEの機能やデザインのカスタマイズ承ります。

フラット表示 前のトピック | 次のトピック


題名 投稿者 日時
 » QueryBuilder に innerJoin されているかどうかを判定したい h_tanaka 2017/5/23 14:22
     Re: QueryBuilder に innerJoin されているかどうかを判定したい nyorai 2017/5/23 14:44
       Re: QueryBuilder に innerJoin されているかどうかを判定したい h_tanaka 2017/5/23 15:04

 



ログイン


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

統計情報

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

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2314
5
umebius
2085
6
yuh
1819
7
h_tanaka
1651
8
red
1570
9
mcontact
1299
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.