首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >CakePHP:限制群数量

CakePHP:限制群数量
EN

Stack Overflow用户
提问于 2013-02-27 05:01:26
回答 1查看 199关注 0票数 1

我正在创建一种游戏,我希望人们能够建造一个小镇。

每个用户只能在他们的城镇中建造有限数量的特定建筑物(即只有2个邮局,1个市政厅等)

我正在为如何实现这个目标而苦苦挣扎。

我有一个用于跟踪用户/建筑关联的UserBuildings表、一个Buildings表和一个User表。

在我将一座建筑物添加到我所在的城市的表单上,我希望首先检查该建筑物的限制,如果已达到该建筑物,则将其从可用建筑物列表中删除。这就是我所拥有的:

代码语言:javascript
复制
$buildings = $this->UserBuildings->Buildings->find('list');
$currents = $this->UserBuildings->find('all', array(
    'conditions'=> array(
        'UserBuildings.user_id'=>$this->Auth->user('id')
    )
));

我可以从$currents数组中获取限制。

有没有一种方法,通过查找和查询,我可以添加一些条件到我的$buildings列表中,以删除任何达到容量的条目。

显然,我可以通过for循环运行比较,并通过检查容量与UserBuildings表中匹配条目的数量来构建更精细的列表,但是有没有更好的方法,比如使用CakePHP自带的方法?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-27 06:28:49

简单地计算一下用户拥有多少种类型的建筑物。通过添加一个新的建筑物,你应该已经知道它的id和其他数据。

假设这是ja连接表:

代码语言:javascript
复制
$count = $this->UserBuildings->find('count', array(
    'conditions'=> array(
        'UserBuildings.building_id'=>$buildingId,
        'UserBuildings.user_id'=>$this->Auth->user('id')
    )
));

然后,您可以简单地将计数与您对该建筑的限制进行比较。顺便说一句,所有这些都应该在模型中发生。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15099175

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档