2016-11-20 16 views
0

Lucidリレーションシップadonisjsforloopにネストされたオブジェクトの値を取得することに関する質問があります。私はadonisjsnodejsに非常に新しいです。adonisjs入れ子forloop(Lucidリレーションシップ)

以下のコードを見てください。これはソースです。

const products = yield Products 
    .query() 
    .with('ToProductImages') 

これらは、後でカートセッションにプッシュされています。

これは、以下CONSTの結果である:

[ { id: 1, 
     price: 33.95, 
     collections_id: 1, 
     ToProductImages: 
     [ { id: 1, 
      price: 33.95, 
      collections_id: 1, 
      _pivot_product_id: 1, 
      _pivot_image_id: 1 } ] } ], 

ビューにアイテムを通過した後、これは私が作らforloopあります。

<div class="col s12 m12"> 
     <table> 
      {% for key1,value in cartlist %} 
       <li>{{ key1.id }}</li> 
       {% for key2,value in key1.ToProductImages %} 
        <li>{{ key2.id }}</li> 
       {% endfor %} 
      {% endfor %} 
     </table> 
    </div> 

出力は、第1 forloop作品が正しく、idを問題なく現れているということです。

第2のforloopはまったく機能しません。私はどのようにKey.ToProductImagesをデバッグするかわかりませんが、私はそれが不可能だと考えています。

答えて

0

まず、現在の出力を教えてください。うまくいかないことは明確ではありません。 2番目。最初のforループで

  • あなたは付加価値のためのキーと値のための「キー1」と「価値」を提供します。私はあなたのforloopsを見てみると、私はあなたの問題とは何かを持っているかもしれない3つのことを気づきますそのキーに関連付けられたコンテンツ 私が正しく理解している場合は、カートに商品が含まれており、各商品が価値があることを意味します。次に、 'id'とToProductImagesを呼び出します。
  • 2番目のforループでは、Key-Valueには「key2」を、ToProductImagesにはキーに関連付けられたvalue-contentには「value」を指定します。 私は分かりませんが、通常は同じfor-loopに同じ名前を付けると前のものを上書きします。 key1-valueはkey2-valueの値になります。
  • また、配列key1.ToProductImagesには基数を指定しますが、key1にはキー(1,2,3など)のみが含まれ、値は含まれません。

    <div class="col s12 m12"> 
        <table> 
         {% for key1,value1 in cartlist %} 
          <li>{{ value1.id }}</li> 
          {% for key2,value2 in value1.ToProductImages %} 
           <li>{{ value2.id }}</li> 
          {% endfor %} 
         {% endfor %} 
        </table> 
    </div> 
    

など、key1.idについても同じことが、これを試してみてください