Bolt\Storage\Entity\Builder::create PHP Method

create() public method

Creates a new entity object.
public create ( array | object $data, object | null $entity = null ) : object
$data array | object Data to load into the entity.
$entity object | null
return object $entity
    public function create($data, $entity = null)
    {
        $entity = $this->getEntity($entity);
        $fields = $this->getFields();
        // set fields
        foreach ($fields as $key => $mapping) {
            $fieldType = $this->fieldManager->get($mapping['fieldtype'], $mapping);
            // If we have a transformer setup then this takes precedence
            $mappedType = $mapping['fieldtype'];
            $handler = isset($this->transformers[$mappedType]) ? $this->transformers[$mappedType] : null;
            if ($handler) {
                call_user_func_array($handler, [$entity, $data[$key]]);
            } else {
                $val = isset($data[$key]) ? $data[$key] : null;
                call_user_func_array([$fieldType, 'set'], [$entity, $val]);
            }
        }
        return $entity;
    }