Bolt\Storage\Field\Type\RepeaterType::addToUpdateQuery PHP Method

addToUpdateQuery() protected method

Query to insert new field values.
protected addToUpdateQuery ( Bolt\Storage\QuerySet $queries, array $changes, $entity )
$queries Bolt\Storage\QuerySet
$changes array
$entity
    protected function addToUpdateQuery(QuerySet $queries, $changes, $entity)
    {
        foreach ($changes as $fieldValue) {
            $repo = $this->em->getRepository(get_class($fieldValue));
            $field = $this->getFieldType($fieldValue->getFieldname());
            $type = $field->getStorageType();
            $typeCol = 'value_' . $type->getName();
            $fieldValue->{$typeCol} = $fieldValue->getValue();
            // This takes care of instances where an entity might be inserted, and thus not
            // have an id. This registers a callback to set the id parameter when available.
            $queries->onResult(function ($query, $result, $id) use($repo, $fieldValue) {
                if ($result === 1) {
                    $repo->save($fieldValue, $silenceEvents = true);
                }
            });
        }
    }