バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > 管理機能 > リポジトリのカスタマイズで検索条件を追加する方法

管理機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
jacopen
投稿日時: 2020/1/15 18:16
対応状況: −−−
常連
登録日: 2008/7/7
居住地:
投稿: 38
リポジトリのカスタマイズで検索条件を追加する方法
[EC-CUBE]4.0.3

受注管理:一覧画面の詳細検索の「商品名」入力欄で「商品コード」でも検索できるようにしたく、
こちらのサイトを参考に、リポジトリのカスタマイズに挑戦しています。
https://a-zumi.net/eccube4-admin-product-tag-search-customizer/

Customizeディレクトリに「Doctrine/Query」ディレクトリを作成し、その中にカスタマイズ用の
ファイルを作成しましたが、反映されていないようです。

作成したコードを抜粋します。
間違っていたり、何かが足りない箇所はありますでしょうか?
アドバイスいただけると嬉しいです。

namespace Customize\Doctrine\Query;

use Eccube\Doctrine\Query\QueryCustomizer;
use Eccube\Doctrine\Query\WhereClause;
use Eccube\Repository\QueryKey;
use Doctrine\ORM\QueryBuilder;

class Admin*****Customizer implements QueryCustomizer {

public function customize(QueryBuilder $builder, $params, $queryKey)
{
if ($params['buy_product_name']) {
$builder->andWhere('oi.product_name LIKE :buy_product_name OR oi.product_code LIKE :buy_product_name')
->setParameter('buy_product_name', '%'.$params['buy_product_name'].'%');
}
}

public function getQueryKey(): string
{
return QueryKey::PRODUCT_SEARCH_ADMIN;
}
}
umebius
投稿日時: 2020/1/15 23:59
対応状況: −−−
登録日: 2016/7/22
居住地: 東京日本橋
投稿: 1651
Re: リポジトリのカスタマイズで検索条件を追加する方法
受注一覧だとQueryKey::PRODUCT_SEARCH_ADMINではなく
QueryKey::ORDER_SEARCH_ADMINだと思います。

また、既存の購入商品名を使用する場合、すでにOrderRepository::getQueryBuilderBySearchDataForAdminで下記のようにoi.product_name LIKE :buy_product_nameと言う条件が追加されてしまっています。

記載いただいたコードのようにandWhereでつないでもその条件がなくなるわけではないので、ヒットしません。

この場合は、「商品コード」専用のフォームを作る方法が簡単だと思います。


----------------
EC-CUBE4系 カスタマイズ ECのプロがシステム特急案件承ります。
EC-CUBE開発 リモートで働くエンジニア募集中

jacopen
投稿日時: 2020/1/16 18:36
対応状況: −−−
常連
登録日: 2008/7/7
居住地:
投稿: 38
Re: リポジトリのカスタマイズで検索条件を追加する方法
返信が遅くなりすみません。
また、アドバイスいただきありがとうございます。

引用:

また、既存の購入商品名を使用する場合、すでにOrderRepository::getQueryBuilderBySearchDataForAdminで下記のようにoi.product_name LIKE :buy_product_nameと言う条件が追加されてしまっています。
記載いただいたコードのようにandWhereでつないでもその条件がなくなるわけではないので、ヒットしません。


そういうことだったんですね。
追記すれば良いと簡単に考えていました。


引用:
この場合は、「商品コード」専用のフォームを作る方法が簡単だと思います。


別途「商品コード」の検索入力を用意するには、
『FormType』のカスタマイズも行うということでしょうか?

umebius
投稿日時: 2020/1/16 23:41
対応状況: −−−
登録日: 2016/7/22
居住地: 東京日本橋
投稿: 1651
Re: リポジトリのカスタマイズで検索条件を追加する方法
>『FormType』のカスタマイズも行うということでしょうか?
そうなります。例えばSearchOrderTypeをExtensionで拡張して項目を追加して検索画面に表示してやれば、QueryCustomizerで絞り込み可能です。


----------------
EC-CUBE4系 カスタマイズ ECのプロがシステム特急案件承ります。
EC-CUBE開発 リモートで働くエンジニア募集中

jacopen
投稿日時: 2020/1/17 13:15
対応状況: −−−
常連
登録日: 2008/7/7
居住地:
投稿: 38
Re: リポジトリのカスタマイズで検索条件を追加する方法
引用:

そうなります。例えばSearchOrderTypeをExtensionで拡張して項目を追加して検索画面に表示してやれば、QueryCustomizerで絞り込み可能です。


ありがとうございます!
アドバイスいただいた方法で挑戦してみます!!
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBEペイメント

公式ストアEC-CUBE4系デザインテンプレート続々リリース中

統計情報

総メンバー数は64,558名です
総投稿数は97,284件です

投稿数ランキング

1
seasoft
7332
2
AMUAMU
2712
3
468
2494
4
nanasess
2089
5
umebius
1651
6
yuh
1612
7
red
1411
8
h_tanaka
1029
9
fukap
907
10
tsuji
863
11
shutta
835
12
tao_s
792
13 ramrun 789
14 karin 657
15 sumida 641
16
homan
633
17 DELIGHT 571
18
patapata
502
19
flealog
485
20 tonton 437


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.