Version: current

# Class HasOneFileDataObjectManager

Provides a tabuar list in your form with view, edit and add links to edit records with a "has-one"-relationship. Detail-views are shown in a greybox-iframe. Features pagination in the overview as well as the detail-views.

CAUTION: You need to make sure that the original form-call to the main controller (e.g. EditForm()) returns a form which includes this field even if no data is loaded, to provide a "starting point" for action_callfieldmethod and ReferencedField.

All URL data sent to and from ComplexTableField is encapsulated in $_REQUEST['ctf'] to avoid side-effects with the main controller.

Example-URL for a "DetailForm"-call explained: "/admin/family/?executeForm=EditForm&action_callfieldmethod&fieldName=Individual&childID=7&methodName=edit" - executeForm Name of the form on the main rendering page (e.g. "FamilyAdmin") - action_callfieldmethod Trigger to call a method of a single field in "EditForm" instead of rendering the whole thing - fieldName Name of the targeted formField - methodName Method on the formfield (e.g. "ComplexTableField") - childID Identifier of the database-record (the targeted table is determined by the $sourceClass parameter)

  Object
  ViewableData implements IteratorAggregate
  RequestHandler
  FormField
  TableListField
  ComplexTableField
  DataObjectManager
  FileDataObjectManager
  HasManyFileDataObjectManager
  HasOneFileDataObjectManager

Package: forms\fields-relational
Located at dataobject_manager/code/HasOneFileDataObjectManager.php

## Methods summary

`public` | # `getParentIdName( mixed $parentClass, mixed $childClass )` Returns the db-fieldname of the currently used has_one-relationship. Returns the db-fieldname of the currently used has_one-relationship. #### Overrides `ComplexTableField::getParentIdName`
`public` | # `getControllerJoinID( )`
`public` | # `saveInto( `DataObject` $record )` Method to save this form field into the given data object. By default, makes use of $this->dataValue() Method to save this form field into the given data object. By default, makes use of $this->dataValue() #### Overrides `HasManyFileDataObjectManager::saveInto`
`public` | # `setOneToOne( )`
`public` | # `isChildSet( mixed $childID )`
`public` | # `ExtraData( )` #### Overrides `HasManyFileDataObjectManager::ExtraData`

### Methods inherited from HasManyFileDataObjectManager

`SortableClass()`, `__construct()`, `controllerClass()`, `getControllerID()`, `getQuery()`, `hasMarkingPermission()`, `setMarkingPermission()`, `setParentClass()`, `sourceItems()`

### Methods inherited from FileDataObjectManager

`ButtonAddTitle()`, `EditUploadedForm()`, `GridLink()`, `GridView()`, `ImportDropdown()`, `ImportForm()`, `ListLink()`, `ListStyle()`, `ListView()`, `UploadForm()`, `UploadLink()`, `allowUploadFolderSelection()`, `closePopup()`, `enableUploadDebugging()`, `getAllowedFileTypes()`, `getBrowseButtonText()`, `getChildDataObj()`, `getCleanUploadFolder()`, `getImportFields()`, `getImportFolderHierarchy()`, `getPreviewFieldFor()`, `getQueryString()`, `getUploadFields()`, `getUploadFolder()`, `getUploadFolderHierarchy()`, `getUploadLimit()`, `handleImport()`, `handleItem()`, `importLinkFor()`, `saveEditUploadedForm()`, `saveImportForm()`, `saveUploadForm()`, `setAllowedFileTypes()`, `setBrowseButtonText()`, `setDefaultView()`, `setGridLabelField()`, `setPreviewFieldFor()`, `setUploadFolder()`, `setUploadLimit()`, `upload()`

### Methods inherited from DataObjectManager

`AddForm()`, `AddLink()`, `AddTitle()`, `BaseLink()`, `ConfirmDelete()`, `CurrentLink()`, `FieldHolder()`, `FilterDropdown()`, `FirstLink()`, `HasFilter()`, `Headings()`, `LastLink()`, `Link()`, `NestedType()`, `NextLink()`, `Paginated()`, `PaginatedLink()`, `PerPageDropdown()`, `PluralTitle()`, `PopupWidth()`, `PrevLink()`, `RelativeLink()`, `SearchValue()`, `ShowAll()`, `ShowAllLink()`, `SingleTitle()`, `Sortable()`, `addPermission()`, `allow_assets_override()`, `allow_css_override()`, `getColumnWidths()`, `getCustomFieldsFor()`, `getRawDetailFields()`, `getSetting()`, `handleDuplicate()`, `loadSort()`, `loadSourceFilter()`, `removePermission()`, `saveComplexTableField()`, `setAddTitle()`, `setColumnWidths()`, `setConfirmDelete()`, `setFilter()`, `setFilterEmptyString()`, `setPerPageMap()`, `setPluralTitle()`, `setPopupWidth()`, `setSingleTitle()`, `setSourceFilter()`, `setUseViewAll()`, `setWideMode()`, `set_confirm_delete()`, `set_popup_width()`, `sourceID()`

### Methods inherited from ComplexTableField

`IsAddMode()`, `ItemCount()`, `Items()`, `PopupHeight()`, `Title()`, `add()`, `createFieldSet()`, `getFieldsFor()`, `getParentClass()`, `getParentIdNameRelation()`, `getParentRecord()`, `getValidatorFor()`, `getViewer()`, `isComposite()`, `setController()`, `setDetailFormValidator()`, `setParentIdName()`, `setPopupCaption()`, `setPopupSize()`, `setRelationAutoSetting()`, `setTemplatePopup()`, `sourceClass()`, `sourceFilter()`

### Methods inherited from TableListField

`Actions()`, `Can()`, `ExportLink()`, `FieldList()`, `FirstItem()`, `GroupedItems()`, `HasGroupedItems()`, `HasSummary()`, `LastItem()`, `ListStart()`, `Name()`, `NamePlural()`, `NameSingular()`, `PageSize()`, `PrintLink()`, `ShowPagination()`, `SummaryFields()`, `SummaryTitle()`, `TotalCount()`, `Utility()`, `addSummary()`, `ajax_refresh()`, `colFunction_avg()`, `colFunction_sum()`, `delete()`, `disableSorting()`, `export()`, `filterString()`, `generateExportFileData()`, `getCastedValue()`, `getCsvQuery()`, `getCsvSeparator()`, `getExtraLinkParams()`, `getPermissions()`, `index()`, `isFieldSortable()`, `performReadonlyTransformation()`, `permissions_for_object()`, `printall()`, `removeCsvHeader()`, `removeSummary()`, `setCSVFieldFormatting()`, `setClick_AjaxLoad()`, `setClick_PopupLoad()`, `setCsvSeparator()`, `setCustomCsvQuery()`, `setCustomQuery()`, `setCustomSourceItems()`, `setExtraLinkParams()`, `setFieldCasting()`, `setFieldFormatting()`, `setFieldList()`, `setFieldListCsv()`, `setHighlightConditions()`, `setPageSize()`, `setPermissions()`, `setShowPagination()`, `setTemplate()`

### Methods inherited from FormField

`Field()`, `LeftTitle()`, `Message()`, `MessageType()`, `Required()`, `RightTitle()`, `SmallFieldHolder()`, `Type()`, `Value()`, `addExtraAttribute()`, `addExtraClass()`, `allowHTML5()`, `allow_html5()`, `attrName()`, `attrTitle()`, `attrValue()`, `createTag()`, `dataValue()`, `debug()`, `describe()`, `extraClass()`, `fieldHolderTemplates()`, `fieldTemplates()`, `forTemplate()`, `getCustomValidationMessage()`, `getExtraClasses()`, `getForm()`, `getHTML5Attribute()`, `getTabIndex()`, `getTabIndexHTML()`, `hasClass()`, `hasData()`, `id()`, `isDisabled()`, `isReadonly()`, `jsValidation()`, `name_to_label()`, `performDisabledTransformation()`, `removeExtraAttribute()`, `removeExtraClass()`, `rootFieldSet()`, `securityTokenEnabled()`, `setAutocomplete()`, `setContainerFieldSet()`, `setCustomValidationMessage()`, `setDisabled()`, `setError()`, `setFieldHolderTemplate()`, `setForm()`, `setHTML5Attribute()`, `setLeftTitle()`, `setName()`, `setReadonly()`, `setRightTitle()`, `setSmallFieldHolderTemplate()`, `setTabIndex()`, `setTitle()`, `setValue()`, `smallFieldHolderTemplates()`, `transform()`, `useHTML5()`, `use_html5()`, `validate()`

### Methods inherited from RequestHandler

`allowedActions()`, `checkAccessAction()`, `getRequest()`, `handleRequest()`, `hasAction()`, `httpError()`

### Methods inherited from ViewableData

`ATT_val()`, `BaseHref()`, `CSSClasses()`, `ColumnBreak()`, `ColumnCalc()`, `ColumnNumber()`, `ColumnPad()`, `ColumnPos()`, `CurrentMember()`, `CurrentPage()`, `Debug()`, `Even()`, `EvenOdd()`, `First()`, `FirstLast()`, `HasPerm()`, `IsAjax()`, `JS_val()`, `Last()`, `Me()`, `Middle()`, `MiddleString()`, `Modulus()`, `MultipleOf()`, `Odd()`, `Pos()`, `RAW_val()`, `SQL_val()`, `ThemeDir()`, `ThemeName()`, `Top()`, `TotalItems()`, `XML_val()`, `__get()`, `__isset()`, `__set()`, `buildCastingCache()`, `cachedCall()`, `castingClass()`, `castingHelper()`, `castingHelperPair()`, `castingObjectCreator()`, `castingObjectCreatorPair()`, `customise()`, `defineMethods()`, `escapeTypeForField()`, `getField()`, `getIterator()`, `getSecurityID()`, `getXMLValues()`, `hasField()`, `hasValue()`, `i18nLocale()`, `iteratorProperties()`, `obj()`, `renderWith()`, `setCustomisedObj()`, `setField()`

### Methods inherited from Object

`__call()`, `__toString()`, `__wakeup()`, `addMethodsFrom()`, `addStaticVars()`, `addWrapperMethod()`, `add_extension()`, `add_static_var()`, `allMethodNames()`, `cacheToFile()`, `cacheToFileWithArgs()`, `clearCache()`, `combined_static()`, `create()`, `createMethod()`, `create_from_string()`, `exists()`, `extInstance()`, `extend()`, `getCustomClass()`, `getExtensionInstance()`, `getExtensionInstances()`, `get_extensions()`, `get_static()`, `hasExtension()`, `hasMethod()`, `has_extension()`, `invokeWithExtensions()`, `is_a()`, `loadCache()`, `parentClass()`, `parse_class_spec()`, `remove_extension()`, `sanitiseCachename()`, `saveCache()`, `set_stat()`, `set_static()`, `set_uninherited()`, `stat()`, `strong_create()`, `uninherited()`, `uninherited_static()`, `useCustomClass()`

### Magic methods summary

## Properties summary

`public string` | $itemClass | # Most of the code below was copied from HasOneComplexTableField. Painful, but necessary, until PHP supports multiple inheritance. Most of the code below was copied from HasOneComplexTableField. Painful, but necessary, until PHP supports multiple inheritance.
`public boolean` | $isOneToOne | #

### Properties inherited from HasManyFileDataObjectManager

`$RelationType`, `$addTitle`, `$htmlListEndName`, `$htmlListField`, `$joinField`, `$markingPermission`, `$relationAutoSetting`, `$template`

### Properties inherited from FileDataObjectManager

`$allowUploadFolderSelection`, `$allowedFileTypes`, `$browseButtonText`, `$customPreviewField`, `$default_view`, `$enableUploadDebugging`, `$gridLabelField`, `$hasDataObject`, `$importClass`, `$limitFileTypes`, `$permissions`, `$pluralTitle`, `$popupClass`, `$templatePopup`, `$upgrade_audio`, `$upgrade_image`, `$upgrade_video`, `$uploadFolder`, `$uploadLimit`, `$uploadMaxSize`, `$url_handlers`, `$view`

### Properties inherited from DataObjectManager

`$actions`, `$allow_assets_override`, `$allow_css_override`, `$column_widths`, `$confirmDelete`, `$confirm_delete`, `$filter`, `$filter_empty_string`, `$filter_label`, `$filter_map`, `$filtered_field`, `$hasNested`, `$isNested`, `$per_page`, `$per_page_map`, `$popupWidth`, `$popup_width`, `$search`, `$showAll`, `$singleTitle`, `$sort`, `$sort_dir`, `$start`, `$use_view_all`

### Properties inherited from ComplexTableField

`$controller`, `$defaultAction`, `$detailFormFields`, `$detailFormValidator`, `$parentClass`, `$parentIdName`, `$popupCaption`, `$popupHeight`, `$requirementsForPopupCallback`, `$showPagination`, `$sourceItems`, `$sourceJoin`, `$viewAction`

### Properties inherited from TableListField

`$IsReadOnly`, `$Markable`, `$MarkableTitle`, `$__cachedQuery`, `$cachedSourceItems`, `$clickAction`, `$csvFieldEscape`, `$csvFieldFormatting`, `$csvHasHeader`, `$csvSeparator`, `$customCsvQuery`, `$customQuery`, `$customSourceItems`, `$disableSorting`, `$exportButtonLabel`, `$extraLinkParams`, `$fieldCasting`, `$fieldFormatting`, `$fieldList`, `$fieldListCsv`, `$groupByField`, `$highlightConditions`, `$methodName`, `$pageSize`, `$paginationBaseLink`, `$readOnly`, `$sourceClass`, `$sourceFilter`, `$sourceSort`, `$summaryFieldList`, `$summaryTitle`, `$totalCount`

### Properties inherited from FormField

`$autocomplete`, `$containerFieldSet`, `$customValidationMessage`, `$description`, `$disabled`, `$dontEscape`, `$extraAttributes`, `$extraClass`, `$extraClasses`, `$fieldHTML5`, `$fieldHolderTemplate`, `$form`, `$html5Attributes`, `$leftTitle`, `$message`, `$messageType`, `$name`, `$possible_autocomplete_values`, `$readonly`, `$rightTitle`, `$smallFieldHolderTemplate`, `$tabIndex`, `$title`, `$use_html5`, `$value`

### Properties inherited from RequestHandler

`$allowed_actions`, `$brokenOnConstruct`, `$request`

### Properties inherited from ViewableData

`$casting`, `$customisedObject`, `$default_cast`, `$failover`, `$iteratorPos`, `$iteratorTotalItems`

### Properties inherited from Object

`$class`, `$extension_instances`, `$extensions`

[Raise a SilverStripe Framework issue/bug](https://github.com/silverstripe/silverstripe-framework/issues/new)
- [Raise a SilverStripe CMS issue/bug](https://github.com/silverstripe/silverstripe-cms/issues/new)
- Please use the Silverstripe Forums to ask development related questions. -