私は一種のゲームを作成していますが、人々が町を構築できるようにしたいと考えています。
各ユーザーは、自分の町に限られた数の特定の建物しか建設できません (つまり、郵便局が 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 独自のメソッドを使用する、より洗練された方法はありますか?