バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

 > フロント機能 > twigで、ジョインしたテーブルの内容を同時に出力したい

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
boss12
投稿日時: 2016/3/25 14:40
対応状況: −−−
常連
登録日: 2016/2/17
居住地:
投稿: 53
twigで、ジョインしたテーブルの内容を同時に出力したい
ECCUBE ver3.09

twigファイルで、ジョインした3つのテーブルの内容を同時に出力したいのですが、うまくいきません
商品情報と同時に、それに紐づく商品の販売状況を出力させたいです。
以下、記述したコードになります。


以下controllerファイル一部

$sellProduct = $app['orm.em']
->createQueryBuilder()
->select('p')
->from('\Eccube\Entity\Product', 'p')
->leftJoin('\Eccube\Entity\OrderDetail', 'od', \Doctrine\ORM\Query\Expr\Join::WITH, 'p.id = od.Product')
->leftJoin('\Eccube\Entity\Order', 'o', \Doctrine\ORM\Query\Expr\Join::WITH, 'od.Order = o.id')
->where('p.Creator = :ProductClass')
->setParameter('ProductClass', $seller)
->getQuery()
->getResult();

return $app['view']->render('Block/test.twig', array(
'sellProduct' => $sellProduct,
));





以下test.twigの内容(一部)

{% for sellPro in sellProduct %}
<div class="item_photo td">
 <img src="{{ app.config.image_save_urlpath }}/{{ sellPro.main_list_image|no_image_product }}">
</div>
<p class="item_name">{{ sellPro.name }}</p>
<p class="item_price">{{ sellPro.getPrice02IncTaxMax|price }}</p>
<dl class="order_detail">
{% if BaseInfo.option_mypage_order_status_display %}
<dt>ご注文状況:</dt>
<dd>{{ sellPro.CustomerOrderStatus }}←どちらが正しい、もしくはどちらも間違い?これを出力したい→{{ sellPro.OrderStatus }}</dd>
{% endif %}
</dl>
<p><a class="btn btn-default btn-sm" href="{{ url('product_detail', {'id': sellPro.id}) }}">詳細を見る</a></p>
{% endfor %}



ご注文状況のところを出力したいです!
それ以外は出力できています。
よろしくお願いします。
boss12
投稿日時: 2016/3/29 16:58
対応状況: −−−
常連
登録日: 2016/2/17
居住地:
投稿: 53
Re: twigで、ジョインしたテーブルの内容を同時に出力したい
Productのid = OrderDetailのProduct
OrderDetailのOrder = Orderのid

これを繋げて、productのidで、それに紐づくOrderのstatusを表示させたいです。
※productのstatusではありません。

わかる方いませんでしょうか?
ikemoto
投稿日時: 2016/3/30 7:37
対応状況: −−−
一人前
登録日: 2015/10/2
居住地:
投稿: 79
Re: twigで、ジョインしたテーブルの内容を同時に出力したい
ご期待に添える内容か微妙ですが、回答無いようですので
私(経験少な目)の理解できている範囲で書いてみます。

この場合、結合条件はymlのところで記載されていると思うので
\Doctrine\ORM\Query\Expr\Join::WITH, 'p.id = od.Product'
\Doctrine\ORM\Query\Expr\Join::WITH, 'od.Order = o.id'
は無くてもよかったような気が…

あと、select('p')でProductのエンティティのみ指定しているので、
sellPro自体はProductエンティティの情報が入っているので
Productの情報はそのまま取れますが、

OrderやOrderDetailに入っている情報をとるには
sellPro.OrderとかsellPro.OrderDetailとか指定する必要があるかも?

若しくは面倒ですがselect('p')の箇所で
必要なフィールド全部書くというやりかたもあります。
フィールド書く方法は過去で私が質問した
「プラグイン内で別プラグインのEntityとデータ結合する方法を教えてください」
のやりとりでselectのところにエンティティに設定している項目名をカンマ区切りで列挙して書いている箇所があります。
この場合、結果はエンティティオブジェクトではなくて連想配列になっているみたいです。

select の箇所は記述の仕方によって結果が色々変わるので…
tossy
投稿日時: 2016/4/2 18:33
対応状況: 解決済
半人前
登録日: 2016/1/22
居住地:
投稿: 14
Re: twigで、ジョインしたテーブルの内容を同時に出力したい
 
boss12
投稿日時: 2016/4/2 18:37
対応状況: 解決済
常連
登録日: 2016/2/17
居住地:
投稿: 53
Re: twigで、ジョインしたテーブルの内容を同時に出力したい
ikemoto様。

回答ありがとうございます。

結論うまくいきませんでしたが、symfony2の本も購入しましたので、これを機にしっかり勉強し、解決できる様にしていこうと思います。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は88,949名です
総投稿数は110,019件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2314
5
umebius
2085
6
yuh
1819
7
h_tanaka
1646
8
red
1570
9
mcontact
1296
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

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

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