質問 > 管理機能 > 商品の検索で、新着順にする。 |
管理機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
kmDnk |
投稿日時: 2019/8/23 18:12
対応状況: 確認中
|
常連 登録日: 2017/8/19 居住地: 投稿: 65 |
商品の検索で、新着順にする。 [EC-CUBE] 3.0.15
[レンタルサーバ] エックスサーバー [OS] macOS 10.14.5 [PHP] 7.2.14 [データベース] version: 5.7.17 MySQL [WEBサーバ] apache 2.4.x、nginx [ブラウザ] Google Chrome バージョン: 76.0.3806.1 [導入プラグインの有無] ・CategoryContent ・EccubeApi ・MailMagazine ・MyGallery ・OGPセット プラグイン ・OGPSetter ・OrderPdf ・PayPalExpress ・ProductReview ・Shiro8NewProductBlock3 ・TransportCSVexportB2 デフォルトの検索結果だと、価格の安い順となるところを 「新着順」としたいため、以下の内容を参照してDBを設定したところ 検索結果がエラー表示となってしまいました。 https://xoops.ec-cube.net/modules/newbb/viewtopic.php?viewmode=flat&order=ASC&topic_id=17472&forum=10 当方はファイルをカスタマイズせずに、 (src/Eccube/Repository/ProductRepository.phpのファイルのorder byの箇所) DBのみ変更してから検索結果を見たらエラーとなってしまい焦ってDBを元に戻したつもりですが、最初と違う(?)のか新着順でソートしたときだけエラー表示です。 DB(mtb_product_list_order_by)は現在以下の様になっています。 id | name | rank | +----+--------------------+------+ | 1 | 価格が低い順 | 0 | | 2 | 新着順 | 2 | | 3 | 価格が高い順 | 1 | なぜ、最初の通り表示されなくなってしまったのでしょうか。 ご存じの方ご教示頂けますと嬉しいです。 |
h_tanaka |
投稿日時: 2019/8/23 20:03
対応状況: −−−
|
神 登録日: 2016/7/22 居住地: 愛媛県 投稿: 1638 |
Re: 商品の検索で、新着順にする。 どのようなエラーが出ますか?デバッグモードで確認してみてください。
|
kmDnk |
投稿日時: 2019/8/23 23:41
対応状況: −−−
|
常連 登録日: 2017/8/19 居住地: 投稿: 65 |
Re: 商品の検索で、新着順にする。 回答ありがとうございます。
デバッグモードに自分のIPアドレスを追加して 見ると「You are not allowed to access this file. Check index_dev.php for more information.」出てしまいます。 IPアドレスはあっているようですし、 https://www.cman.jp/network/support/go_access.cgi index_dev.phpへのIPアドレスはこのサイトを参考に設定しました。 https://qiita.com/poego/items/68f556adf89116246bec 因みに、システムエラーが表示されるのは 検索した単語に対して絞り込みをしたときでした。 よろしくお願い致します。 |
h_tanaka |
投稿日時: 2019/8/23 23:43
対応状況: −−−
|
神 登録日: 2016/7/22 居住地: 愛媛県 投稿: 1638 |
Re: 商品の検索で、新着順にする。 サーバーの仕様でクロスドメインとなっている可能性があるため、html/index_dev.php の次のif文の第1および第2条件を削除してください。
if (isset($_SERVER['HTTP_CLIENT_IP']) || isset($_SERVER['HTTP_X_FORWARDED_FOR']) || !in_array(@$_SERVER['REMOTE_ADDR'], $allow) ) { ↓ if (/*isset($_SERVER['HTTP_CLIENT_IP']) || isset($_SERVER['HTTP_X_FORWARDED_FOR']) ||*/ !in_array(@$_SERVER['REMOTE_ADDR'], $allow) ) {
|
kmDnk |
投稿日時: 2019/8/24 0:02
対応状況: −−−
|
常連 登録日: 2017/8/19 居住地: 投稿: 65 |
Re: 商品の検索で、新着順にする。 回答、ありがとうございます。
>html/index_dev.php の次のif文の第1および第2条件を削除してください。 対象ファイルが html/index_dev.phpとのことですが ルートディレクトリにあるindex_dev.phpでよかったでしょうか? htmlディレクト以下には該当ファイルが無かったもので。 |
h_tanaka |
投稿日時: 2019/8/24 0:05
対応状況: −−−
|
神 登録日: 2016/7/22 居住地: 愛媛県 投稿: 1638 |
Re: 商品の検索で、新着順にする。 標準では html/index_dev.php です。
ルート直下にしかないということは、URLから html を削除する処理を行っていると思われます。 この場合は、ルート直下のもので合っています。
|
kmDnk |
投稿日時: 2019/8/24 0:23
対応状況: −−−
|
常連 登録日: 2017/8/19 居住地: 投稿: 65 |
Re: 商品の検索で、新着順にする。 回答ありがとうございます。
>標準では html/index_dev.php です。 ルート直下にしかないということは、URLから html を削除する処理を行っていると思われます。 この場合は、ルート直下のもので合っています。 そういえば、urlからhtmlを削除する処理を行ったことがありました。 無事、デバッグモードにすることができました。 ありがとうございます。 今回は、検索単語を入れて検索した結果が 表示された後に、「新着順」で並べ替えしたい時のエラーを 確認したいのですが、この場合 エラー表示されたときのURLのルート直下にindex_dev.phpを 入れて見たら良いのでしょうか? 例 https://hoge.com/ec/index_dev.php/products/list?mode=&category_id=&name=hogehoge&pageno=1&disp_number=15&orderby=2 そうすると 以下の2つのエラーが出ます。 「QueryException in QueryException.php line 63: [Semantical Error] line 0, col 345 near 'pc.code) LIKE': Error: 'pc' is not defined.」 「QueryException in QueryException.php line 41: SELECT p FROM Eccube\Entity\Product p WHERE p.Status = 1 AND (NORMALIZE(p.name) LIKE NORMALIZE(:keyword0) OR NORMALIZE(p.search_word) LIKE NORMALIZE(:keyword0) OR NORMALIZE(p.description_list) LIKE NORMALIZE(:keyword0) OR NORMALIZE(p.description_detail) LIKE NORMALIZE(:keyword0) OR NORMALIZE(p.free_area) LIKE NORMALIZE(:keyword0) OR NORMALIZE(pc.code) LIKE NORMALIZE(:keyword0)) ORDER BY p.create_date DESC, p.id DESC」 |
h_tanaka |
投稿日時: 2019/8/24 0:26
対応状況: −−−
|
神 登録日: 2016/7/22 居住地: 愛媛県 投稿: 1638 |
Re: 商品の検索で、新着順にする。 クエリ発行時に pc が指定されているが、pc が未定義です。というようなエラーです。
エラーの詳細表示にエラーが発生してるファイル群が表示されていますので、たどっていけば該当の Repository ファイルと行番号までわかると思います。
|
kmDnk |
投稿日時: 2019/8/24 0:37
対応状況: −−−
|
常連 登録日: 2017/8/19 居住地: 投稿: 65 |
Re: 商品の検索で、新着順にする。 回答ありがとうございます。
QueryException.php と言うファイルは2つ見つかったのですが ec/vendor/doctrine/dbal/lib/Doctrine/DBAL/Query/QueryException.php ec/vendor/doctrine/orm/lib/Doctrine/ORM/Query/QueryException.php 「ec/vendor/doctrine/orm/lib/Doctrine/ORM/Query/QueryException.php」のファイルを見てみましたが ちょっとわかりませんでした。 ただ、pcというクエリは 自分が以前そういった処理をさせたことがあったので それが関係ありそうです。 https://xoops.ec-cube.net/modules/newbb/viewtopic.php?viewmode=flat&order=ASC&topic_id=21769&forum=10 |
h_tanaka |
投稿日時: 2019/8/24 0:44
対応状況: −−−
|
神 登録日: 2016/7/22 居住地: 愛媛県 投稿: 1638 |
Re: 商品の検索で、新着順にする。 いえ、そのファイルを見てもわからないと思います。
エラー内に複数ファイル表示されていませんか? 一つずつたどっていけばエラー原因となる Repository や Controller のファイルがあるはずです。
|
(1) 2 » |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |