public function saveInto(DataObjectInterface $record) { $value = $this->value; $fieldName = $this->getName(); if ($record->has_one($fieldName)) { $record->{$fieldName . 'ID'} = $value; } return $this; }
public function saveInto(DataObjectInterface $record) { if (!isset($_FILES[$this->name])) { return false; } $fileClass = File::get_class_for_file_extension(pathinfo($_FILES[$this->name]['name'], PATHINFO_EXTENSION)); if ($this->relationAutoSetting) { // assume that the file is connected via a has-one $hasOnes = $record->has_one($this->name); // try to create a file matching the relation $file = is_string($hasOnes) ? Object::create($hasOnes) : new $fileClass(); } else { $file = new $fileClass(); } $this->upload->loadIntoFile($_FILES[$this->name], $file, $this->folderName); if ($this->upload->isError()) { return false; } $file = $this->upload->getFile(); if ($this->relationAutoSetting) { if (!$hasOnes) { return false; } // save to record $record->{$this->name . 'ID'} = $file->ID; } return $this; }
public function saveInto(DataObjectInterface $record) { // Check required relation details are available $fieldname = $this->getName(); if (!$fieldname) { return $this; } // Get details to save $idList = $this->getItemIDs(); // Check type of relation $relation = $record->hasMethod($fieldname) ? $record->{$fieldname}() : null; if ($relation && ($relation instanceof RelationList || $relation instanceof UnsavedRelationList)) { // has_many or many_many $relation->setByIDList($idList); } elseif ($record->has_one($fieldname)) { // has_one $record->{"{$fieldname}ID"} = $idList ? reset($idList) : 0; } return $this; }
/** * Saves the field into a record * @param DataObjectInterface $record * @return FileAttachmentField */ public function saveInto(DataObjectInterface $record) { $fieldname = $this->getName(); if (!$fieldname) { return $this; } // Handle deletions. This is a bit of a hack. A workaround for having a single form field // post two params. $deletions = Controller::curr()->getRequest()->postVar('__deletion__' . $this->getName()); if ($deletions) { foreach ($deletions as $id) { $this->deleteFileByID($id); } } if ($relation = $this->getRelation()) { $relation->setByIDList($this->Value()); } elseif ($record->has_one($fieldname)) { $record->{"{$fieldname}ID"} = $this->Value() ?: 0; } elseif ($record->hasField($fieldname)) { $record->{$fieldname} = is_array($this->Value()) ? implode(',', $this->Value()) : $this->Value(); } return $this; }