---
title: "Breaking: The job validation settings reach the backend"
manual: "Academic Jobs"
version: "main"
permalink: "https://docs.typo3.org/permalink/fgtclb/academic-jobs:breaking-job-validation-settings-reach-the-backend@main"
source: "Changelog/3.0/Breaking-JobValidationSettingsReachTheBackend.rst"
rendered: "2026-10-12T10:12:12+00:00"
---

# Breaking: The job validation settings reach the backend {#breaking-job-validation-settings-reach-the-backend}

## Description {#description}

The flags of `Configuration/AcademicJobs/Settings.yaml` apply to the
backend record editor of a job now, not only to the new job form: a
`required` field is required there, `readonly` and
`disabled` make a field read only, and `email` and `number`
set the type of the field.

A listener of
`\TYPO3\CMS\Core\Configuration\Event\AfterTcaCompilationEvent` with the
identifier `academic-jobs/apply-settings-to-tca` applies them, after every
`Configuration/TCA/Overrides` file. For each configured field it sets
whether the field is required and read only, also when the settings say *no*.

## Impact {#impact}

With the shipped settings, the company name and the description of a job are
required in the backend record editor. A job without one of them can only be
saved there once it is filled in. Jobs created through the new job form have
both, since the form required them already.

**A copy of the old settings can lose phone numbers.** The manual of 2.x asked
for a copy of the whole `validations` block, and that block marked the
contact phone with `number`. A copy that still does turns
`contact_phone` into a number field in the backend, and saving a job
there stores `+49 30 123` as `49`. The settings files are merged
per field now, so the shipped `tel` does not reach a copy that names the
field.

A TCA override of a site package that sets `required` or `readOnly`
on a field the settings configure no longer takes effect. A field the settings
list with `url` alone, the link for example, is not required in the
backend, whatever the override says.

## Affected installations {#affected-installations}

Installations whose site package ships
`Configuration/AcademicJobs/Settings.yaml` with `number` on
`contactPhone`, installations with job records that lack a company name
or a description, and installations that change `required` or
`readOnly` of a configured job field in their TCA overrides.

## Migration {#migration}

Before the update, replace `number` with `tel` on
`contactPhone` in the settings file of the site package, or remove the
field from it so the shipped flags apply:

**EXT:my_sitepackage/Configuration/AcademicJobs/Settings.yaml**

```yaml
validations:
  job:
    contactPhone:
      - tel
```

Fill in the missing values when an editor next saves such a record, or make
the fields optional in the settings of the site package:

**EXT:my_sitepackage/Configuration/AcademicJobs/Settings.yaml**

```yaml
validations:
  job:
    companyName: []
    description: []
```

Move a TCA override of `required` or `readOnly` into the settings
file. When the backend has to differ from the form, register a listener of
`AfterTcaCompilationEvent` ordered after
`academic-jobs/apply-settings-to-tca`, see [the validation settings](https://docs.typo3.org/permalink/fgtclb/academic-jobs:configuration-validations-backend-listener@main).
