バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > フロント機能 > 商品詳細画面URLでの商品ID変換について

フロント機能

新規スレッドを追加する

スレッド表示 | 古いものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
yamu16
投稿日時: 2021/1/13 18:21
対応状況: −−−
新米
登録日: 2021/1/13
居住地:
投稿: 6
Re: 商品詳細画面URLでの商品ID変換について
468様
早々のご回答ありがとうございます。
下記対応で無事に動きました。

src/Eccube/Repository/ProductRepository.php
内に、findWithSortedClassCategoriesを元にして
findWithSortedClassCategoriesFromEncryptIdを作成。
試しに数値のみとする変換を行い、
 $decryptId = preg_replace('/[^0-9]/', '', $productId);
検索用パラメータを置き換えて実装しました。
 ->setParameter('id', $decryptId)


ProductController.phpのアノテーションを下記のように修正しました。
(requirementsの+抜けミスは修正済)
* 商品詳細画面.
*
* @Route("/products/detail/{id}", name="product_detail", methods={"GET"}, requirements={"id" = "[a-zA-Z0-9]+"})
* @Template("Product/detail.twig")
* @ParamConverter("Product", options={"repository_method" = "findWithSortedClassCategoriesFromEncryptId"})


※うまく修正後の情報が読み込まれず、旧メソッドが呼ばれていたのですが、管理画面からキャッシュ削除を実行したら反映されました。
468
投稿日時: 2021/1/13 16:03
対応状況: −−−
登録日: 2008/10/26
居住地:
投稿: 2922
Re: 商品詳細画面URLでの商品ID変換について
@ParamConverteで指定されてる"repository_method" = "findWithSortedClassCategories"は
ProductRepository->findWithSortedClassCategories()を指定しているかと思います。

新しいメソッドをProductRepositoryに追加して@ParamConverteの指定を変更すれば
目的の値でProductを取得する事は可能と思います。


----------------
株式会社シロハチ
■ECCUBE2系、3系構築カスタマイズご相談ください。
EC-CUBE3マニュアル
blog

yamu16
投稿日時: 2021/1/13 14:11
対応状況: 解決済
新米
登録日: 2021/1/13
居住地:
投稿: 6
商品詳細画面URLでの商品ID変換について
前提:URL末尾の商品IDを数値そのままではなく、可逆変換した状態で直接リンクするURLを利用したい。

試した事:eccube4直下の「.htaccess」上で変換をかけてみようとしたが、index.phpに渡される部分が変わらないようで失敗。
(RewriteRuleで変換後にリダイレクトするとURLが書き換わるので意図した状態とならない)

その後調査した事:
src/Eccube/Controller/ProductController.php
商品詳細画面の@Routeアノテーションの中で
requirements={"id" = "[a-zA-Z0-9]"}
と、半角英字も対象としましたが、
その先で、どこのソースでIDの文字数値→数値変換を行えばよいのか見つからない状態です。

質問1:
@ParamConverterを利用している段階で、Productのidを数値以外で取得不能でしょうか?

質問2:
(質問1が負荷の場合:URLを演算後の数値のみとして対応)
どこで元の数値への復元処理を行えばその後の処理を修正せずに対応可能でしょうか?
スレッド表示 | 古いものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBEペイメント

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

統計情報

総メンバー数は70,505名です
総投稿数は100,698件です

投稿数ランキング

1
seasoft
7333
2
468
2922
3
AMUAMU
2712
4
nanasess
2127
5
umebius
1931
6
yuh
1612
7
red
1437
8
h_tanaka
1076
9
tsuji
926
10
fukap
907
11
shutta
835
12
tao_s
793
13 ramrun 789
14 karin 689
15 sumida 641
16
homan
633
17 DELIGHT 572
18
patapata
502
19
flealog
485
20 tonton 437


ネットショップの壺

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

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