0

我刚刚继承了一个项目,我需要重新编写一些代码,以便无限滚动条的分页仍然正常工作。

现在,代码正在获取所有类别及其产品和列表。我需要对其进行编辑,以便仅返回具有有效列表的产品的类别。

这是最终起作用的代码:

   $catData = $this->find('all',array(
            'conditions' => array(
                'Indexer.type' => 'Category',
                'Listing.listing_id IS NOT NULL'
            ),
            'joins' => array(
                array('table' => 'peeka_product_category_link',
                    'alias' => 'Link',
                    'type' => 'LEFT',
                    'conditions' => array(
                        'Link.category_id = Category.category_id'
                    )
                ),
                array('table' => 'peeka_products',
                    'alias' => 'Product',
                    'type' => 'LEFT',
                    'conditions' => array(
                        'Product.product_id = Link.product_id'
                    )
                ),
                array('table' => 'peeka_listings',
                    'alias' => 'Listing',
                    'type' => 'LEFT',
                    'conditions' => array(
                        'Listing.product_id = Product.product_id',
                        'Listing.listing_end_date >=' => $date, 
                        'Listing.listing_start_date <=' => $date,
                        "Listing.listing_status = 'Active'"
                    )
                ),
            ),
            'order' => 'Category.category_name ASC',
            'limit' => $set_limit,
            'fields' => array('Category.category_id, Category.category_name, Indexer.url'),
            'group' => 'Category.category_id',
            'recursive' => 0
        ));

编辑:感谢戴夫,这正在工作,我只是想发布它以供将来参考。也许它会帮助别人。

4

1 回答 1

1

“...仅返回具有有效列表的产品的类别。”

“...一种将这三个查询组合为一个的方法,以便第一个 Category->find() 函数检索所有有效数据。”

要检索数据并根据关联模型的字段对其进行限制,您需要使用CakePHP 的 JOIN

如果不为您编写代码,很难进一步回答您的问题,所以 - 尝试 JOIN,然后如果您有任何问题,请回来询问另一个更具体的问题。

于 2013-03-26T20:31:06.210 回答