TYPO3 v15 dev-main snapshot ()

This commit is contained in:
2026-08-10 22:31:09 +02:00
commit af8cc155b5
6818 changed files with 642608 additions and 0 deletions
@@ -0,0 +1,103 @@
.. include:: /Includes.rst.txt
.. _feature-106972-1750856721:
==============================================
Feature: #106972 - Configure searchable fields
==============================================
See :issue:`106972`
Description
===========
TYPO3 now automatically includes all fields of suitable types in
backend search operations, e.g., in the List module.
This eliminates the need for the previously used TCA `ctrl` option
:php:`searchFields`, which has been :ref:`removed <breaking-106972-1750856858>`.
Instead, a new per-field configuration option :php:`searchable`
has been introduced. It allows integrators to fine-tune whether
a specific field should be included in backend search queries.
By default, all fields of supported types are considered searchable.
To exclude a field from being searchable, set the following in the
fields TCA configuration:
.. code-block:: php
'my_field' => [
'config' => [
'type' => 'input',
'searchable' => false,
],
],
Note that until :php:`searchFields` is manually removed from your TCA, the
automatic TCA migration sets all suitable fields, which are not included
in the :php:`searchFields` configuration, to :php:`searchable => false` to
keep current behavior.
Supported Field Types
----------------------
The following TCA field types support the :php:`searchable` option and are
automatically considered in searches unless explicitly excluded:
* :php:`color`
* :php:`datetime` (when not using a custom :php:`dbType`)
* :php:`email`
* :php:`flex`
* :php:`input`
* :php:`json`
* :php:`link`
* :php:`slug`
* :php:`text`
* :php:`uuid`
Unsupported field types such as :php:`file`, :php:`inline`, :php:`password` or
:php:`group` are excluded from search and do not support the
:php:`searchable` option.
Impact
======
* Backend search becomes more consistent and automatic.
* No need to manually maintain a :php:`searchFields` list in TCA.
* Integrators have more granular control over search behavior on a field level.
* Custom fields can easily be excluded from search using the :php:`searchable` option.
Migration
=========
If your extension previously relied on the :php:`searchFields` TCA option,
remove it from the :php:`ctrl` section and instead define :php:`'searchable' => false`
on fields that should be excluded from search results.
No action is needed if the default behavior (search all suitable fields)
is acceptable.
Example
=======
.. code-block:: php
return [
'columns' => [
'title' => [
'config' => [
'type' => 'input',
'searchable' => true, // optional, true by default
],
],
'notes' => [
'config' => [
'type' => 'text',
'searchable' => false, // explicitly excluded
],
],
],
];
.. index:: TCA, ext:core