gpt4 book ai didi

cakePHP - 如何获取相关模型的项目数?

转载 作者:行者123 更新时间:2023-12-02 11:19:41 26 4
gpt4 key购买 nike

型号为:storesproduct ,它们通过以下方式关联:

var $belongsTo = array(
'Store' => array(
'className' => 'Store',
'foreignKey' => 'store_id'
))

var $hasMany = array(
'Product' => array(
'className' => 'Product',
'foreignKey' => 'store_id'
))

我想获得所有商店的列表以及他们拥有的产品数量。我应该如何修改电话: $this->Store->find('all', array(<..some conditions..>))返回那种类型的数据?

最佳答案

一种方法是使用 Cake 的内置 counterCache 您的协会中的选项。这可能是性能最高的选项,尽管它确实需要向表中添加一个字段。

在您的 stores表,添加 INT字段调用 product_count
在您的 Product型号添加 counterCache您协会的选项:

var $belongsTo = array(
'Store' => array(
'className' => 'Store',
'foreignKey' => 'store_id',
'counterCache' => true
));

无论何时添加或删除 Product记录,它会自动更新 product_count关联字段 Store记录,以便无需更改您的 find操作。

请注意,如果您选择此路线,您将需要手动更新 product_count初始值的字段是正确的,因为它只在添加/删除操作后更新。

关于cakePHP - 如何获取相关模型的项目数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8173988/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com