我正在创造一种游戏,我希望人们能够建造一座城镇。
每个用户只能在他们的城镇中建造有限数量的特定建筑物(即只有 2 个邮局、1 个市政厅等)。
我正在为如何实现这一点而苦苦挣扎。
我有一个 UserBuildings 表来跟踪用户/建筑物关联、一个 Buildings 表和一个 User 表。
在我将建筑物添加到我的城市的表单上,我想首先检查建筑物的限制,如果达到,则将其从可用建筑物列表中省略。这是我所拥有的:
$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 自己的方法?