/** * @param RelationshipsInterface $relationships * @param $record */ protected function hydrateRelationships(RelationshipsInterface $relationships, $record) { /** @var RelationshipInterface $relationship */ foreach ($relationships->getAll() as $key => $relationship) { $this->callHydrateRelationship($key, $relationship, $record); } }
/** * @param $key * @param RelationshipsInterface $relationships * @param ResourceInterface $resource * @param object|null $record * @return bool */ protected function validateRelationship($key, RelationshipsInterface $relationships, ResourceInterface $resource, $record = null) { if (!is_object($relationships->get($key))) { $this->addError($this->errorFactory->memberObjectExpected($key, P::relationship($key))); return false; } $validator = $this->get($key); $relationship = $relationships->getRelationship($key); if (!$validator->isValid($relationship, $record, $key, $resource)) { $this->addErrors($validator->getErrors()); return false; } return true; }
/** * @inheritdoc */ protected function hydrateRelationships(RelationshipsInterface $relationships, $record) { /** @var RelationshipInterface $relationship */ foreach ($relationships->getAll() as $key => $relationship) { /** If there is a specific method for this relationship, we'll hydrate that */ if ($this->callHydrateRelationship($key, $relationship, $record)) { continue; } /** If this is a has-one, we'll hydrate it. */ if ($relationship->isHasOne()) { $this->hydrateHasOne($key, $relationship, $record); } } }