'title:json_string', 'Content' => 'content:json_string', 'Type' => 'type:json_string', 'Enabled' => 'enabled:json_boolean', 'LocationId' => 'location_id:json_int', 'ClassName' => 'class_name:json_string', ]; /** * @param null $expand * @param array $fields * @param array $relations * @param array $params * @return array */ public function serialize($expand = null, array $fields = [], array $relations = [], array $params = [] ) { $values = parent::serialize($expand, $fields, $relations, $params); $banner = $this->object; if(!$banner instanceof SummitLocationBanner) return []; if (!empty($expand)) { foreach (explode(',', $expand) as $relation) { switch (trim($relation)) { case 'location': { if($banner->hasLocation()){ unset($values['location_id']); $values['location'] = SerializerRegistry::getInstance()->getSerializer($banner->getLocation())->serialize(); } } break; } } } return $values; } }