バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > フロント機能 > 最近購入したもの情報を取得したい

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
mutk
投稿日時: 2021/5/11 14:37
対応状況: −−−
半人前
登録日: 2021/4/26
居住地:
投稿: 14
最近購入したもの情報を取得したい
▼テンプレート
[EC-CUBE] 4.0.5

トップページにログイン状態のとき最近購入したものを
スライドショーで表示したいのですが、マイページで取得できている
購入したもの一覧を取得できません。

{% if is_granted('ROLE_USER') %}{# ログイン中 #}
 {% set OrderItem = repository('Eccube\\Entity\\OrderItem').getList() %}
  {% for OrderItem in Order.MergedProductOrderItems %}
   <div class="recentlyPurchased__sliderComponent__holder__itemSlider__eachSlide">
    <div class="p-item p-item_type01">
     <a href="{{ url('product_detail', {'id': Product.id}) }}" class="p-item__anchor">
      <div class="p-item__anchor__fig">
       <img src="{{ asset(OrderItem.Product.MainListImage|no_image_product, 'save_image') }}" alt="">
      </div>
      <div class="p-item__anchor__status">
       <div class="p-item__anchor__status__name">{{ OrderItem.product_name }}</div>
      </div>
     </a>
    </div>
   </div>
  {% endfor %}
{% else %}

マイページの文を引用しているのですが、controllerでの追記で必要な場所や正しい記述方法があれば
ご教授願えないでしょうか?

よろしくお願いします。
umebius
投稿日時: 2021/5/11 14:45
対応状況: −−−
登録日: 2016/7/22
居住地: 東京日本橋
投稿: 2085
Re: 最近購入したもの情報を取得したい
{% set OrderItem = repository('Eccube\\Entity\\OrderItem').getList() %}
というのはOrderItemRepositoryにgetListメソッド存在しないので使えないと思います。

この辺りなら参考になると思いますが、
https://github.com/ec-cube/EC-CUBE/blob/4.0.5/src/Eccube/Controller/Mypage/MypageController.php#L145-L175
なんにせよtwigテンプレートだけでやるにはちょっと複雑かもしれないですね。

できないことはないと思いますが。


----------------
EC-CUBEカスタマイズ 承ります。
【EC-CUBEで開発してみたいエンジニア募集中】

mutk
投稿日時: 2021/5/11 14:56
対応状況: −−−
半人前
登録日: 2021/4/26
居住地:
投稿: 14
Re: 最近購入したもの情報を取得したい
返信ありがとうございます!

conntorollerのtopcontrollerに追記してみたのですが

public function index(Request $request, Paginator $paginator)

おそらくこの部分がエラーになってしまいます。

Cannot determine controller argument for "Eccube\Controller\TopController::index()": the $request argument is type-hinted with the non-existent class or interface: "Eccube\Controller\Request". Did you forget to add a use statement?

topページではrequestというのは使えないのでしょうか?
umebius
投稿日時: 2021/5/11 14:59
対応状況: −−−
登録日: 2016/7/22
居住地: 東京日本橋
投稿: 2085
Re: 最近購入したもの情報を取得したい

他のコントローラのファイルを見ると上の方にこういう行があると思います。
use Symfony\Component\HttpFoundation\Request;

この記載を行うと使えるのではないでしょうか。
mutk
投稿日時: 2021/5/11 15:44
対応状況: −−−
半人前
登録日: 2021/4/26
居住地:
投稿: 14
Re: 最近購入したもの情報を取得したい
ご返信ありがとうございます!

上記の通りの方法でエラーは解決いたしましたが
twigでの
{% for OrderItem in Order.MergedProductOrderItems %}
という文章でエラーが出てしまいます。

Variable "Order" does not exist.(エラー文)

controllerには
use Eccube/Entity/Order;
use Eccube/Repository/OrderRepository;

などの必要そうな分は追記したのですがうまくいきません。
エラー内容をみてもこれといった解決方法も見つからない状況です。
ご教授いただけると幸いです。
mutk
投稿日時: 2021/5/11 17:46
対応状況: −−−
半人前
登録日: 2021/4/26
居住地:
投稿: 14
Re: 最近購入したもの情報を取得したい
上記Orderの部分は自己解決しました!

ご回答ありがとうございました。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン



統計情報

総メンバー数は76,814名です
総投稿数は105,219件です

投稿数ランキング

1
seasoft
7333
2
468
3217
3
AMUAMU
2712
4
nanasess
2275
5
umebius
2085
6
yuh
1669
7
red
1556
8
h_tanaka
1195
9
tsuji
942
10
fukap
907
11
shutta
835
12
tao_s
794
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.