0

我知道这个问题很简单。但我无法在谷歌中找到它。毕竟我对蛋糕很陌生。

例如我有两个 Model:ProductCategory.

Product index我想显示可用类别的列表以及该类别中的产品数量。如下所示:

Food (10)
Beverages (7)
...

我成功地循环了可用的类别,但不知道如何计算它。下面是我的循环:

<?php foreach($categories as $c): ?>
    <li> ... <?php echo $this->$c->Product->find('count') ?> </li>
<?php endforeach; ?>
// The ... part is echo-ing the category name

我尝试了很多变化并不断收到错误,例如ArrayHelper not foundProductHelper not found

有人有解决方案吗?

谢谢

编辑

这是我在添加您建议的循环之前的ProductController代码。foreach

public function index() {
            //the first two lines is default from cake bake
        $this->Product->recursive = 0;
        $this->set('products', $this->paginate());
        $categories = $this->Product->Category->find('all');
        $this->set('categories', $categories);
    }
4

2 回答 2

2

不用计算每个请求的计数,而是使用计数器缓存功能来存储每个类别的产品计数,然后简单地显示它。

于 2013-05-10T06:41:22.793 回答
1

您正在尝试调用model视图文件,而是可以将产品计数从控制器本身添加到您的数组中,例如,示例代码为: 在您的控制器中

$categories = $this->Product->Category->find('all',array('recursive'=>-1));
foreach($categories as $key => $category){
  $categories[$key]['ProductCount'] = $this->Product->find('count',
   array(
     'conditions'=>array('Product.category_id'=>$category['Category']['id'])
   )
  );
}

在哪里ProductCount可以用产品名称代替

于 2013-05-10T05:48:19.200 回答