Bolt\Storage\Field\Type\FieldTypeBase::persist PHP Method

persist() public method

public persist ( Bolt\Storage\QuerySet $queries, $entity )
$queries Bolt\Storage\QuerySet
    public function persist(QuerySet $queries, $entity)
    {
        $attribute = $this->getMappingAttribute();
        $key = $this->mapping['fieldname'];
        $qb =& $queries[0];
        $valueMethod = 'serialize' . ucfirst($this->camelize($attribute));
        $value = $entity->{$valueMethod}();
        if ($this instanceof SanitiserAwareInterface && is_string($value)) {
            $isWysiwyg = $this instanceof WysiwygAwareInterface;
            $value = $this->getSanitiser()->sanitise($value, $isWysiwyg);
        }
        $type = $this->getStorageType();
        if (null !== $value) {
            $value = $type->convertToDatabaseValue($value, $this->getPlatform());
        } elseif (isset($this->mapping['default'])) {
            $value = $this->mapping['default'];
        }
        $qb->setValue($key, ':' . $key);
        $qb->set($key, ':' . $key);
        $qb->setParameter($key, $value);
    }

Usage Example

Example #1
0
 /**
  * {@inheritdoc}
  */
 public function persist(QuerySet $queries, $entity)
 {
     if ($entity->getSlug() === null) {
         // When no slug value is given, generate a pseudo-random reasonably unique one.
         $entity->setSlug('slug-' . md5(mt_rand()));
     }
     parent::persist($queries, $entity);
 }
All Usage Examples Of Bolt\Storage\Field\Type\FieldTypeBase::persist