/** * Prepare a resource model * * @param ModelInterface $model the resource to prepare * * @return array the prepared response */ public function prepareModel(ModelInterface $model) { $prepared = array(); $links = $model->links(); foreach ($model->getVisibleAttributeNames() as $name) { $prepared[$name] = $this->prepare($model->{$name}); } if ($model instanceof ActiveRecord) { $embedded = array(); foreach ($model->getMetaData()->relations as $name => $config) { if (!$model->hasRelated($name)) { continue; } $embedded[$name] = $this->prepare($model->getRelated($name)); } if (count($embedded)) { $prepared['_embedded'] = $embedded; } if ($model->getIsDeleted()) { $prepared['_deleted'] = true; } } if ($model->hasErrors()) { $prepared['_errors'] = $model->getErrors(); } $prepared['_links'] = $links; return $prepared; }
/** * @inheritDoc */ public function prepareModel(ModelInterface $model) { $names = $model->getVisibleAttributeNames(); $row = array(); foreach ($names as $name) { $row[] = $model->{$name}; } if ($model->hasErrors()) { foreach ($model->getErrors() as $attribute => $errors) { $names[] = $attribute . '_ERRORS'; $row[] = implode(' and ', $errors); } } return array($names, $row); }