diff --git a/src/Storage/Entity/Builder.php b/src/Storage/Entity/Builder.php index 4562e2667f7..e1b0fd37d7a 100644 --- a/src/Storage/Entity/Builder.php +++ b/src/Storage/Entity/Builder.php @@ -2,6 +2,7 @@ namespace Bolt\Storage\Entity; +use Bolt\Storage\Field\Type\FieldTypeInterface; use Bolt\Storage\FieldManager; use Bolt\Storage\Mapping\ClassMetadata; use Bolt\Storage\Mapping\MetadataDriver; @@ -162,7 +163,9 @@ public function createFromDatabaseValues($data, $entity = null) // set fields foreach ((array) $fields as $key => $mapping) { $fieldType = $this->fieldManager->get($mapping['fieldtype'], $mapping); - call_user_func_array([$fieldType, 'hydrate'], [$data, $entity]); + if ($fieldType instanceof FieldTypeInterface) { + call_user_func_array([$fieldType, 'hydrate'], [$data, $entity]); + } } return $entity; diff --git a/src/Storage/Repository.php b/src/Storage/Repository.php index 10ae4b36c5b..e68582babfe 100644 --- a/src/Storage/Repository.php +++ b/src/Storage/Repository.php @@ -8,6 +8,7 @@ use Bolt\Events\StorageEvents; use Bolt\Storage\Entity\Builder; use Bolt\Storage\Entity\Entity; +use Bolt\Storage\Field\Type\FieldTypeInterface; use Bolt\Storage\Mapping\ClassMetadata; use Bolt\Storage\Query\QueryInterface; use Doctrine\Common\Persistence\ObjectRepository; @@ -307,7 +308,9 @@ protected function persist(QuerySet $queries, $entity, $exclusions = []) } $field = $this->getFieldManager()->get($field['fieldtype'], $field); - $field->persist($queries, $entity); + if ($field instanceof FieldTypeInterface) { + $field->persist($queries, $entity); + } } }