1

サブアイテムを含むリストを表示するためにjqueryアコーディオンを使用しています。カテゴリ テーブルと製品テーブルがあります。これらのカテゴリと対応する製品をリストに取得したいと考えています。私のコントローラーでは、以下のコードを追加します。

    $category=$this->Category->find('list',
    array('fields'=>array('id','category_name')));
    $this->set('category',$category);

    $productlist=$this->Product->find('list',
    array('fields'=>array('id','product_name','category_id')));
    $this->set('productMenu',$productlist);

そして、私のリストにリストの値を追加しました

        <ul id="nav"><?php
  foreach ($category as $key => $value)
  {
  ?><li><a href="#"><?php echo $value; ?></a>
    <ul class="sub">
    <?php foreach ($productMenu as $key => $value )
  { ?>

  <li><a href="#"><?php echo $value; ?></a>
 <?php } ?>
      </ul>
     </li><?php
  }
  ?></ul>

現在、カテゴリは適切に表示されており、特定のカテゴリに属する​​製品を追加するロジックが得られませんでした。誰かがこれを知っているなら、私を助けてください。立ち往生しています..

また、この結果をデバッグすると、結果が得られました

        debug($catgory)

        array(
(int) 1 => 'Crowns And Bridges Non Metal',
(int) 2 => 'Crowns And Bridges Metal',
(int) 3 => 'Implants',
(int) 4 => 'Dentures'
             )

        debug($product)

        array(
(int) 1 => array(
    (int) 1 => 'Lava',
    (int) 2 => 'ZR Crown'
),
(int) 2 => array(
    (int) 3 => 'Porcelain fused to metal crowns'
),
(int) 3 => array(
    (int) 4 => 'General Restorative',
    (int) 5 => 'Customised Abutments',
    (int) 6 => 'Avinent Implants'
),
(int) 4 => array(
    (int) 7 => 'Partial Dentures',
    (int) 8 => 'Complete Dentures:'
)
4

1 に答える 1

1

ネストされた配列内の製品が同じ ID のカテゴリに属していると仮定すると、非常に近くなります (つまり、製品 4、5、および 6 は実際にはカテゴリ 3 の「インプラント」に属します。

次に、ネスティングに関してはこれが機能するはずです。jQuery のものに必要な形式を見ていませんでした。

<ul id="nav">
    <?php
    foreach ($category as $cat_id => $cat_value) { ?>
        <li><a href="#"><?php echo $cat_value; ?></a>
            <ul class="sub">
            <?php foreach ($productMenu[$cat_id] as $product_id => $product_value )
                {
                ?>
                    <li><a href="#"><?php echo $product_value; ?></a>
                <?php } // end foreach product ?>
            </ul>
        </li>
    <?php } // end foreach category?>
</ul>

これは、モデルを結合することによって Cake が実行できるちょっとした作業です。詳細については、http : //book.cakephp.org/2.0/en/models/associations-linking-models-together.html をご覧ください。

于 2014-02-27T23:16:35.010 に答える