バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > フロント機能 > 動的ブロックへの商品コード受け渡しについて

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
popuko
投稿日時: 2019/5/22 15:22
対応状況: −−−
新米
登録日: 2019/4/1
居住地:
投稿: 7
動的ブロックへの商品コード受け渡しについて
▼テンプレート
[EC-CUBE] EC-CUBE 3.0.15
[レンタルサーバ] さくら
[OS] Mac
[PHP] 5.4.45
[データベース] MySQL 5.7.23
[WEBサーバ] Apache
[ブラウザ] Chrome
[導入プラグインの有無] 商品レビュー
[現象]

https://umebius.com/eccube/add_dynamic_block_programmatically/
こちらを参考に、レビューをページング表記する動的ブロックの作成に取り掛かっている最中で
データベースにある情報をBlockに表記する設定までには至ったのですが、商品コードを受け渡すルーティングの設定がうまく設定できません。
ルーティングの設定に関する情報を教えていただけると幸いです。

現在の設定内容
【ReviewController.php】
class ReviewListController
{

 public function index(Application $app, Request $request, $id)
  {


$Reviews = $app['product_review.repository.product_review']
->createQueryBuilder('p')
->andWhere('p.del_flg = 0')
->andWhere('p.Status = 1')
->andWhere('p.Product = :productId')
->setParameter('productId', $id) //<- こちらに商品コードを受け渡ししたい
->orderBy('p.update_date', 'DESC')
->getQuery()
->getResult();

return $app->render('Block/reviewlist.twig', array(
'Reviews' => $Reviews
));
 }
}

【FrontControllerProvider.php】
// レビュー
$c->match('/block/reviewlist/{id}', '\Eccube\Controller\Block\ReviewListController::index')->bind('block_reviewlist')->assert('id', '\d+');


お手数をおかけしますがよろしくお願いします。
umebius
投稿日時: 2019/5/22 15:29
対応状況: −−−
登録日: 2016/7/22
居住地: 東京日本橋
投稿: 1296
Re: 動的ブロックへの商品コード受け渡しについて
商品コードをURLで使用したいということであれば、

$c->match('/block/reviewlist/{code}', '\Eccube\Controller\Block\ReviewListController::index')->bind('block_reviewlist')->assert('code', '[a-z]+');


といった設定にすれば、URLにコードを使用し、$idではなく$codeという変数で受け取れるかと思います。

[a-z]+のところはサイトの商品コードの仕様に合わせてください。


後はコントローラで商品コードからProductClassエンティティを取得し、そこからProductエンティティの情報を得ればレビューのクエリが可能です。


----------------
EC-CUBE3系4系 カスタマイズ ECのプロがシステム特急案件承ります。
公式インテグレートパートナー (株)U-Mebius

popuko
投稿日時: 2019/5/22 17:00
対応状況: −−−
新米
登録日: 2019/4/1
居住地:
投稿: 7
Re: 動的ブロックへの商品コード受け渡しについて
umebiusさま

ありがとうございます。
大変申し訳ございません。商品コードではなく商品IDでした・・・すいません。

商品IDを受け渡しの際は、{id}でよろしいのでしょうか?
もう一つお伺いしたいのですが・・・。図々しく申し訳ありません・・・。
商品詳細ページからリンクで商品IDなどを受け渡す際はこのような形でいいのでしょうか?

現在の下記の設定

$c->match('/user_data/reviewlist/{id}', '\Eccube\Controller\Block\ReviewListController::index')->bind('block_reviewlist')->assert('id', '\d+');
<a href="{{ url('block_reviewlist', {'id': Product.id}) }}">

リンク先にてこちらのエラーが発生しております。
Sorry, the page you are looking for could not be found.
NotFoundHttpException in UserDataController.php line 50:
umebius
投稿日時: 2019/5/22 17:12
対応状況: −−−
登録日: 2016/7/22
居住地: 東京日本橋
投稿: 1296
Re: 動的ブロックへの商品コード受け渡しについて
すみません、ブロックの話でしたね。少し勘違いしていました。

だとするとブロックにパラメーター(商品ID)を渡すのはちょっとEC-CUBEの標準的なブロックの仕組みから外れるので面倒なことになります。

ブロックにIDを渡す理由を少し教えていただいてもよろしいでしょうか?
他の方法があるかもしれません。
popuko
投稿日時: 2019/5/22 17:23
対応状況: −−−
新米
登録日: 2019/4/1
居住地:
投稿: 7
Re: 動的ブロックへの商品コード受け渡しについて
umebius さま

僕の知識不足の思い込みからブロックで作成を進めてしまっておりました。

ブロックではなくページへControllerなどを作成して、データの受け渡しという形になるのでしょうか?
umebius
投稿日時: 2019/5/22 17:26
対応状況: −−−
登録日: 2016/7/22
居住地: 東京日本橋
投稿: 1296
Re: 動的ブロックへの商品コード受け渡しについて
ブロックで商品IDを使うにはどこからかIDを取得しないといけないのは確かです。
検討されているブロックは商品詳細ページだけに設置するというようなイメージでしょうか?
popuko
投稿日時: 2019/5/22 17:34
対応状況: −−−
新米
登録日: 2019/4/1
居住地:
投稿: 7
Re: 動的ブロックへの商品コード受け渡しについて
umebiusさま
商品詳細ページからのリンクで、その商品のレビューのみを表示する新規ページの作成に取り掛かっておりました。
説明不足で申し訳ありません。
umebius
投稿日時: 2019/5/22 17:39
対応状況: −−−
登録日: 2016/7/22
居住地: 東京日本橋
投稿: 1296
Re: 動的ブロックへの商品コード受け渡しについて
なるほど、商品詳細ページとは別のページということなんですね。
だとするとブロックを作るというよりは新しい種類のページを作るという形になると思います。(ブロックはページ内に配置するものなので)



umebius
投稿日時: 2019/5/22 17:42
対応状況: −−−
登録日: 2016/7/22
居住地: 東京日本橋
投稿: 1296
Re: 動的ブロックへの商品コード受け渡しについて
dtb_page_layoutに新しいページのデータは登録してありますでしょうか?

登録してコントローラーを作って、、blockを入れるとややこしいので、ルーティングは下記のような形で良いかと思います。


$c->match('/reviewlist/{id}', '\Eccube\Controller\ReviewListController::index')->bind('reviewlist')->assert('id', '\d+');

<a href="{{ url('reviewlist', {'id': Product.id}) }}">
popuko
投稿日時: 2019/5/22 21:38
対応状況: 解決済
新米
登録日: 2019/4/1
居住地:
投稿: 7
Re: 動的ブロックへの商品コード受け渡しについて
umebius 様

返答遅くなり申し訳ございません。
ルーティングの設定等完了することができました。
細かい点まで教えていただきありがとうございました。
(1) 2 »
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBEペイメント

ec-cube.co

統計情報

総メンバー数は49,611名です
総投稿数は93,193件です

投稿数ランキング

1
seasoft
7332
2
AMUAMU
2712
3
nanasess
1968
4
468
1818
5
yuh
1602
6
red
1343
7
umebius
1296
8
fukap
907
9
h_tanaka
907
10
tsuji
856
11
shutta
835
12 ramrun 789
13
tao_s
774
14 karin 656
15 sumida 641
16
homan
633
17 DELIGHT 571
18
patapata
502
19
flealog
483
20 tonton 436


ネットショップの壺

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

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