Nextras\Orm\Entity\IEntity::toArray PHP Метод

toArray() публичный Метод

Converts entity to array.
public toArray ( integer $mode = self::TO_ARRAY_RELATIONSHIP_AS_IS ) : array
$mode integer
Результат array
    public function toArray($mode = self::TO_ARRAY_RELATIONSHIP_AS_IS);

Usage Example

Пример #1
0
 public function persist(IEntity $entity)
 {
     if (!$entity->isModified()) {
         $entity->id;
     }
     $this->beginTransaction();
     $id = $entity->getValue('id', TRUE);
     $data = $entity->toArray(IEntity::TO_ARRAY_LOADED_RELATIONSHIP_AS_IS);
     $storageProperties = $entity->getMetadata()->getStorageProperties();
     foreach ($data as $key => $value) {
         if (!in_array($key, $storageProperties, TRUE) || $value instanceof IRelationshipCollection) {
             unset($data[$key]);
         }
         if ($value instanceof IEntity) {
             $data[$key] = $value->id;
         }
     }
     unset($data['id']);
     $data = $this->getStorageReflection()->convertEntityToStorage($data);
     if (!$entity->isPersisted()) {
         $this->databaseContext->query('INSERT INTO ' . $this->getTableName() . ' ', $data);
         if ($id) {
             return $id;
         } else {
             return $this->databaseContext->getInsertId($this->databaseStructure->getPrimaryKeySequence($this->getTableName()));
         }
     } else {
         $primary = [];
         $id = (array) $id;
         foreach ($this->getStorageReflection()->getStoragePrimaryKey() as $key) {
             $primary[$key] = array_shift($id);
         }
         $this->databaseContext->query('UPDATE ' . $this->getTableName() . ' SET', $data, 'WHERE ?', $primary);
         return $entity->id;
     }
 }