Example #1
0
 /**
  * @return bool
  */
 public function syncTable()
 {
     $database = new Database();
     $database->create($this->getName());
     $databaseColumns = $database->describe($this->getName());
     $fields = $this->getForm()->getFields();
     $storableFields = [];
     $extendedColumns = [];
     foreach ($databaseColumns as $column) {
         $extendedColumns[] = $column['Field'];
     }
     foreach ($fields as $columnName => $field) {
         if ($field->isStorable() && !in_array($field->getName(), $extendedColumns)) {
             $storableFields[$columnName] = $field->getDataType();
         }
     }
     if (count($storableFields) > 0) {
         $database->alter($this->getName(), $storableFields);
     }
     return true;
 }