バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > 管理機能 > 商品検索で、店舗ごとに検索を行えるようにしたい

管理機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
ゲスト
投稿日時: 2016/6/17 17:08
対応状況: −−−
商品検索で、店舗ごとに検索を行えるようにしたい
管理画面の商品マスタ画面なのですが、デフォルトでは
何も選択しない場合は全件検索されるものと思います。

カテゴリで絞ることはできるのですが、例として
店舗が店舗1、店舗2、店舗3とあり
親カテゴリとして店舗で扱っている商品のジャンルを設定します
例)食器、インテリア

それぞれ、以下のように配置されています

食器:店舗1、店舗2
インテリア:店舗1、店舗3

カテゴリ検索の場合、食器の店舗1を選択した場合は同じ店舗1でもインテリアの商品検索ができないため利便性に欠けてしまうかなと思います。
しかし、ほかの店舗の商品情報を更新できてしまうのはよくないため指定しない場合の全件検索も好ましくない状況です。

店舗名はユーザ情報に入れているため、そこから取得はでき、また処理を追加すべき箇所は
SearchProductType.phpかなと思っているのですが
ここでの追記の仕方が間違っていたのかエラーとなってしまいました。
SQL組むんだろうなということと
dtb_productからテーブルの結合を行いcategoryテーブルまで結合させるということは理解し何とかSQLは組みphpMyAdminで実行し正しい結果が取れたことは確認できました。

SearchProductType.phpへの追記方法(たぶん、->addの部分を間違えているのだと思いますが…)
SQLは正しく動作しており結合の書き方も間違えていないと思うので…

ほかの部分で何か設定する箇所はあるのでしょうか?
お知恵をお貸しいただければ幸いです。

【実現したいもののSQL】
SELECT *
FROM dtb_product p
INNER JOIN dtb_product_class pc ON p.product_id = pc.product_id
INNER JOIN dtb_product_category pCa ON p.product_id = pCa.product_id
INNER JOIN dtb_category ca ON pCa.category_id = ca.category_id
WHERE ca.category_name = '店舗1'

【SearchProductType.phpに追加した箇所】
->add('store_name', 'hidden', array(
'query_builder' => function(EntityRepository $er) use (店舗名の入っている変数){
return $er->createQueryBuilder('p')
->innerJoin('p.ProductClasses', 'pc')
->innerJoin('pc.ProductCategories', pCa)
->innerJoin('pCa.Category', 'ca')
->where('ca.name = :name')
->setParameter('name', 店舗名の入っている変数);
},
))

store_nameを他の個所に書いていないため、そこが原因かとは思うのですが…
DELIGHT
投稿日時: 2016/6/17 17:45
対応状況: −−−
仙人
登録日: 2010/2/3
居住地: 熊本県・九州・長野県・関東甲信越
投稿: 572
Re: 商品検索で、店舗ごとに検索を行えるようにしたい
まずデバッグモードを使ってエラー内容を併記して下さい。
「エラーが発生した」だけでは何のエラーか分かりません。

推測する限りでは恐らく
UndefinedOptionsException
The option "query_builder" does not exist.
となっているのでしょう。
hiddenタイプのフォームで使えるオプションは下記のURLの通りです。
http://symfony.com/doc/current/reference/forms/types/hidden.html

Eccube\Formに記述するのはあくまでもフォームに関する情報のみです。
実際に商品検索のクエリを組み上げている箇所は下記の順序で追うことができます。
https://github.com/EC-CUBE/ec-cube/blob/3.0.10/src/Eccube/Controller/Admin/Product/ProductController.php#L78
https://github.com/EC-CUBE/ec-cube/blob/3.0.10/src/Eccube/Repository/ProductRepository.php#L136


----------------
+ DAISY inc. -------------------- +
EC-CUBE構築・カスタマイズサービス
EC・WEB構築などお気軽にご相談ください。

デイジー株式会社
http://daisy.link/

スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

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

投稿数ランキング

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