> フロント機能 > 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の本も購入しましたので、これを機にしっかり勉強し、解決できる様にしていこうと思います。 |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |