'name:json_string', 'CompanyId' => 'company_id:json_int', ); /** * @param null $expand * @param array $fields * @param array $relations * @param array $params * @return array */ public function serialize($expand = null, array $fields = array(), array $relations = array(), array $params = array() ) { $team = $this->object; if(!$team instanceof Team) return []; $values = parent::serialize($expand, $fields, $relations, $params); $members = []; foreach($team->getMembers() as $member){ $members[] = $member->getId(); } $values['members'] = $members; if (!empty($expand)) { $expand_to = explode(',', $expand); foreach ($expand_to as $relation) { switch (trim($relation)) { case 'company':{ if(isset($values['company_id'])) { unset($values['company_id']); $values['company'] = SerializerRegistry::getInstance()->getSerializer($team->getCompany())->serialize($expand); } } break; case 'members':{ unset( $values['members']); $members = []; foreach($team->getMembers() as $member){ $members[] = SerializerRegistry::getInstance()->getSerializer($member)->serialize($expand); } $values['members'] = $members; } break; } } } return $values; } }