---
title: "Deprecation: #104108 - Table dependant definition of columnsOnly"
manual: "TYPO3 Core Changelog"
version: "main"
permalink: "https://docs.typo3.org/permalink/changelog:deprecation-104108-1718354448"
source: "Changelog/13.2/Deprecation-104108-TableDependantDefinitionOfColumnsOnly.rst"
typo3-version: "13.2"
typo3-major: 13
type: "deprecation"
issue: 104108
forge: "https://forge.typo3.org/issues/104108"
tags: ["Backend", "NotScanned", "ext:backend"]
rendered: "2026-09-20T18:31:11+00:00"
---

# Deprecation: #104108 - Table dependant definition of columnsOnly {#deprecation-104108-1718354448}

See [forge#104108](https://forge.typo3.org/issues/104108)

## Description {#description}

When linking to the edit form it's possible to instruct the
`EditDocumentController` to only render a subset of available
fields for relevant records using the `columnsOnly` functionality,
by adding the fields to be rendered as a comma-separated list.

However, the edit form can render records from many tables, and not just
a single table, in the same request.

Therefore, the limit fields functionality has been extended to allow
setting the fields to be rendered on a per-table basis. This means that
passing a comma-separated list of fields as a value for `columnsOnly`
has been deprecated.

## Impact {#impact}

Passing a comma-separated list of fields as value for `columnsOnly` will
trigger a PHP deprecation warning. A compatibility layer will automatically
set the field list for the required tables.

## Affected installations {#affected-installations}

All installations passing a comma-separated list of fields as a value for
`columnsOnly`.

## Migration {#migration}

The fields to be rendered have to be passed as an `array` under the
corresponding table name.

An example, building such link using the `UriBuilder`:

```php
$urlParameters = [
    'edit' => [
        'pages' => [
            1 => 'edit',
        ],
    ],
    'columnsOnly' => 'title,slug'
    'returnUrl' => $request->getAttribute('normalizedParams')->getRequestUri(),
];

GeneralUtility::makeInstance(UriBuilder::class)->buildUriFromRoute('record_edit', $urlParameters);
```

Above example has to be migrated to:

```php
$urlParameters = [
    'edit' => [
        'pages' => [
            1 => 'edit',
        ],
    ],
    'columnsOnly' => [
        'pages' => [
            'title',
            'slug'
        ]
    ],
    'returnUrl' => $request->getAttribute('normalizedParams')->getRequestUri(),
];

GeneralUtility::makeInstance(UriBuilder::class)->buildUriFromRoute('record_edit', $urlParameters);
```

Additionally, when rendering records from many tables, a configuration
could look like the following:

```php
$urlParameters = [
    'edit' => [
        'pages' => [
            1 => 'edit',
        ],
        'tt_content' => [
            2 => 'edit',
        ],
    ],
    'columnsOnly' => [
        'pages' => [
            'title',
            'slug'
        ],
        'tt_content' => [
            'header',
            'subheader'
        ]
    ],
    'returnUrl' => $request->getAttribute('normalizedParams')->getRequestUri(),
];

// https:://example.com/typo3/record/edit?edit[pages][1]=edit&edit[tt_content][2]=edit&columnsOnly[pages][0]=title&columnsOnly[pages][1]=slug&columnsOnly[tt_content][0]=header&columnsOnly[tt_content][1]=subheader
$link = GeneralUtility::makeInstance(UriBuilder::class)->buildUriFromRoute('record_edit', $urlParameters);
```
