/**
  * @param \DataObject $object
  * @param Field $field
  * @throws \ValidationException
  * @throws null
  */
 public function write(\DataObject $object, Field $field)
 {
     if ($object->has_extension('Versioned')) {
         $object->writeToStage('Stage');
         $args = $field->options;
         $publish = isset($args['publish']) ? $args['publish'] : true;
         if ($publish) {
             $object->publish('Stage', 'Live');
         }
     } else {
         $object->write();
     }
     if (!$object->isSeeded()) {
         $seed = new \SeedRecord();
         $seed->SeedClassName = $object->ClassName;
         $seed->SeedID = $object->ID;
         $seed->Key = $field->key;
         $seed->Root = $field->fieldType === Field::FT_ROOT;
         $seed->write();
         $object->setIsSeeded();
     }
 }
 private function write(DataObject $dataObject)
 {
     Versioned::reading_stage('Stage');
     $dataObject->write();
     if ($dataObject instanceof SiteTree) {
         $dataObject->publish('Stage', 'Live');
     }
     Versioned::reading_stage('Live');
 }