質問 > 管理機能 > 2.13.3商品マスター「商品名検索」で大文字小文字の区別を無くしたい |
管理機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
nantoka |
投稿日時: 2015/11/13 4:30
対応状況: −−−
|
常連 登録日: 2009/4/7 居住地: 投稿: 38 |
2.13.3商品マスター「商品名検索」で大文字小文字の区別を無くしたい [EC-CUBE] 2.13.3、2.4.4からの移行(プラグイン無し)
[レンタルサーバ] KAGOYAサーバ [PHP] 5.4.45 [データベース] PostgreSQL 9.3.5 [現象] 商品マスターの商品名検索で、大文字なら大文字、小文字なら小文字しかヒットしません。 例:「TEST」を入力するとTESTだけヒット、「test」を入力するとtestだけヒット 2.4.4と2.12.3で確認したところ、大文字小文字の区別無く検索できます。 2.13.3の仕様でしょうか? 可能であれば、大文字小文字の区別無く検索できるよう変更したいと思います。 変更箇所を教えて頂けますでしょうか? また、当方の環境のみの現象でしたら、チェック箇所をご教授願えれば助かります。 data/class/pages/admin/Products/LC_Page_Admin_Products.php 上記ファイルはカスタマイズ等はしていません。 よろしくお願い致します。 |
yuh |
投稿日時: 2015/11/13 10:41
対応状況: −−−
|
神 登録日: 2013/1/9 居住地: 大阪 投稿: 1819 |
Re: 2.13.3商品マスター「商品名検索」で大文字小文字の区別を無くしたい LC_Page_Admin_ProductsのbuildQueryで
$where .= ' AND name LIKE ?'; となっている部分を $where .= ' AND name ILIKE ?'; に変更すればできると思いますが、 2.12.6では $where .= ' AND name LIKE ?'; このままになってますね。 どういう経緯で変更されたのかはわかりませんが、たぶんILIKEに変えればできると思います。 |
nantoka |
投稿日時: 2015/11/15 20:29
対応状況: −−−
|
常連 登録日: 2009/4/7 居住地: 投稿: 38 |
Re: 2.13.3商品マスター「商品名検索」で大文字小文字の区別を無くしたい 早い回答、ありがとうございます。
残念?ながら、buildQueryは2.12.6の時と同じ表記でした。 引用:
今回の2.13.3のインストールはKAGOYAサーバーの「簡単インストール」を利用しました。 てっきり、いつものように検索できると思っていましたので、この部分はノーチェックでした。 事前にMAMP環境で2.13.3をインストールしていたので、試してみましたが やはり、大文字小文字を区別しないと、ヒットしません。 --------------------- 念のため、MAMP環境(MacOS10.10.5)に2.13.3を再インストールして以下を試してみました。 1.あらかじめ用意されている商品の「商品名」を変更 おなべレシピ→ONABE おなべレシピ 2.商品マスター > 商品名で検索 おなべ → 2件ヒット「おなべ」「ONABE おなべレシピ」 onabe → ヒット無し ONABE → 1件ヒット「ONABE おなべレシピ」 --------------------- 仕様が変更になったのでしょうか? それとも、どこか見落としている部分があるでしょうか? 2.12.6のように「大文字小文字」の区別無く検索できるようにしたいと思います。 お手数おかけますが、原因、または、修正場所等教えて頂きたいと思います。 よろしくお願い致します。 |
nanasess |
投稿日時: 2015/11/15 20:48
対応状況: −−−
|
神 登録日: 2006/9/9 居住地: 投稿: 2314 |
Re: 2.13.3商品マスター「商品名検索」で大文字小文字の区別を無くしたい PostgreSQL の場合は、 ILIKE にすれば解決されますが、 MySQL では ILIKE が使用できません。
EC-CUBE が自動的に LIKE に変換するため大文字小文字を区別する検索となってしまいます。 以下の記事が参考になりそうです。 http://qa.atmarkit.co.jp/q/2036 |
nantoka |
投稿日時: 2015/11/16 19:08
対応状況: −−−
|
常連 登録日: 2009/4/7 居住地: 投稿: 38 |
Re: 2.13.3商品マスター「商品名検索」で大文字小文字の区別を無くしたい 引用:
※MAMP環境では、MySQLとPostgreSQLの両方を使えるよう設定しています。 環境の記載抜け、申し訳ありません。 参考ページの提示、ありがとうございます。そちらを読んで修正するべき事がわかりました。 PostgreSQL ですので、ILIKEにして解決しました。 最初のyuhさんの説明もドンピシャを教えて頂いていたのに、 2.12.6と同じだったら…で的外れな勘違いをしてしまいました。本当にすみません。 SQLはふわっとしたイメージだけで覚えていたので、改めて初歩を固めないと…と痛感です。 本当にありがとうございました。 追加の質問になりますが、 2.12.6では「$where .= ' AND name LIKE ?';」で大丈夫だったのはどうしてなんでしょうか… 時間があれば、教えて頂ければ嬉しく思います。 今回はありがとうございました。 |
nanasess |
投稿日時: 2015/11/16 20:30
対応状況: −−−
|
神 登録日: 2006/9/9 居住地: 投稿: 2314 |
Re: 2.13.3商品マスター「商品名検索」で大文字小文字の区別を無くしたい 引用:
このあたりの実装は、 2.12 も 2.13 もあまり変化がないので、通常はできないはずなのですが、もしかしたらデータベースのロケールの設定が異なっていたのかもしれません。 https://www.postgresql.jp/document/9.4/html/locale.html MySQL の場合は照合順序の影響を受けます |
nantoka |
投稿日時: 2015/11/18 0:01
対応状況: 解決済
|
常連 登録日: 2009/4/7 居住地: 投稿: 38 |
Re: 2.13.3商品マスター「商品名検索」で大文字小文字の区別を無くしたい 引用:
実装の想定は全然できませんが、以下セクションの意味はわかるようになりました。 「ロケールの設定は以下のSQL機能に影響を与えます。」 説明、ありがとうございます。 …なんか、EC-CUBEの開発に携わってる方々、これからもよろしくお願い致します。 |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |