バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > その他 > QueryBuilderでand検索を行いたい。

その他

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
khiro
投稿日時: 2020/12/11 13:51
対応状況: −−−
新米
登録日: 2020/12/4
居住地:
投稿: 9
QueryBuilderでand検索を行いたい。
現状、リポジトリでは、以下のようにパラメータで、$c_idを渡しています。

    public function fooProductQueryBuilder($c_id)
    {
        $qb = $this->createQueryBuilder('p')
                   ->innerJoin('p.ProductCategories', 'pct')
                   ->where('pct.category_id = :category')
                   ->setMaxResults(1) 
                   ->setParameter('category', $c_id);

        return $qb;
    }

この$c_idは、コントローラから引き渡されます。
以下のように、fooProductQueryBuilderの引数として、11, 12, 13, 15, 20が順番に渡ってきます。これらは、カテゴリーのIDです。

    public function foo_product(Application $app, Request $request)
    {
        $tab = array();
        $c_id = [11, 12, 13, 15, 20];

        for($i = 0; $i < 5; $i++){
            $tab[$i] = $app['eccube.repository.product']->fooProductQueryBuilder($c_id[$i])
                          ->getQuery()
                          ->getResult();
        }

        return $app['view']->render("Block/top_product.twig", array(
            "TabProducts" => $tab
        ));
    }

この状態で、126というカテゴリーIDを追加するにはどうすれば良いですか?
11 and 126
12 and 126
13 and 126
というようにしたいです。
umebius
投稿日時: 2020/12/11 23:48
対応状況: −−−
登録日: 2016/7/22
居住地:
投稿: 2085
Re: QueryBuilderでand検索を行いたい。
11 and 126 というのはID 11 と 126のカテゴリ両方に所属している商品を抽出するという意味ですよね?
こういった物はどうでしょうか。
試していないのでエラーになったらすみません..

$qb = $this->createQueryBuilder('p')
            ->innerJoin('p.ProductCategories', 'pct')
            ->addSelect('SUM(CASE WHEN pct.Category IN (:category) THEN 1 ELSE 0 END) AS HIDDEN category_count')
            ->having('2 = category_count')
            ->setMaxResults(1)
            ->groupBy('p.id')
            ->setParameter('category', array(126, $c_id));



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

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

khiro
投稿日時: 2020/12/12 17:00
対応状況: −−−
新米
登録日: 2020/12/4
居住地:
投稿: 9
Re: QueryBuilderでand検索を行いたい。
ありがとうございます!

参考にさせていただきます!
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

総メンバー数は88,840名です
総投稿数は109,985件です

投稿数ランキング

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