function FileReferenceResolver::findFileReferenceColumns

Determine whether a field references files stored in {file_managed}.

Parameters

\Drupal\Core\Field\FieldDefinitionInterface $field: A field definition.

Return value

string|false The field column if the field references {file_managed}.fid, typically fid, FALSE if it does not.

1 call to FileReferenceResolver::findFileReferenceColumns()
FileReferenceResolver::getFileReferenceFields in core/modules/file/src/FileReferenceResolver.php
Returns file fields for this entity type and bundle.

File

core/modules/file/src/FileReferenceResolver.php, line 166

Class

FileReferenceResolver
Retrieves file references.

Namespace

Drupal\file

Code

protected function findFileReferenceColumns(FieldDefinitionInterface $field) : string|false {
  $schema = $field->getFieldStorageDefinition()
    ->getSchema();
  foreach ($schema['foreign keys'] as $data) {
    if ($data['table'] == 'file_managed') {
      foreach ($data['columns'] as $field_column => $column) {
        if ($column == 'fid') {
          return $field_column;
        }
      }
    }
  }
  return FALSE;
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.