[ 'has-many' => ['Model\CharacterModel', 'allianceId'] ], 'mapAlliances' => [ 'has-many' => ['Model\AllianceMapModel', 'allianceId'] ] ]; /** * get all alliance data * @return array */ public function getData(){ $allianceData = (object) []; $allianceData->id = $this->id; $allianceData->name = $this->name; $allianceData->sharing = $this->sharing; return $allianceData; } /** * get all maps for this alliance * @return array|mixed */ public function getMaps(){ $maps = []; $f3 = self::getF3(); $this->filter('mapAlliances', ['active = ?', 1], [ 'limit' => $f3->get('PATHFINDER.MAX_MAPS_ALLIANCE'), 'order' => 'created' ] ); if($this->mapAlliances){ foreach($this->mapAlliances as $mapAlliance){ if($mapAlliance->mapId->isActive()){ $maps[] = $mapAlliance->mapId; } } } return $maps; } /** * get all characters in this alliance * @return array */ public function getCharacters(){ $characters = []; $this->filter('allianceCharacters', ['active = ?', 1]); if($this->allianceCharacters){ foreach($this->allianceCharacters as $character){ $characters[] = $character; } } return $characters; } }