Hier zeige ich Dir anhand einer meiner Extensions wie Du die Datensätze mit einer sprechenden Url aurfufen kannst!
1. Erweitere die Datenbanktabelle Deiner Extension in ext_tables.sql um uri varchar(255) DEFAULT '0' NOT NULL, damit die Url gespeichert werden kann.
Das ganze sieht dann in etwas so aus:
CREATE TABLE tx_mhstellenanzeigen_domain_model_stellenanzeigen (
title varchar(255) DEFAULT '' NOT NULL,
teaser varchar(255) DEFAULT '' NOT NULL,
uri varchar(255) DEFAULT '0' NOT NULL,
beschreibung text,
abwann date DEFAULT NULL,
dokument int(11) unsigned NOT NULL default '0',
ort int(11) unsigned DEFAULT '0' NOT NULL,
ansprechpartner int(11) unsigned DEFAULT '0' NOT NULL,
);
2. Nun musst Du noch das TCA in DEINEXTENSIONFOLDER/Configuration/TCA/DEINETCAKONFIGURATION.php anpassen.
In 'Label' => 'Der Name der im Backend angezeigt werden soll'
In 'fields' => ['Der Name der Zeile in der der Name steht. Das kann title, name oder oder sein.....']
Das sieht dann so aus:
'uri' => [
'label' => 'URL',
'exclude' => 1,
'config' => [
'type' => 'slug',
'generatorOptions' => [
'fields' => ['title'],
'fieldSeparator' => '/',
'prefixParentPageSlug' => false,
'replacements' => [
'/' => '',
],
],
'prependSlash' => true,
'fallbackCharacter' => '-',
'eval' => 'uniqueInSite',
],
],
Damit Du das Feld nun auch bedienen kannst, muss hier noch uri eingetragen werden! So kann Du im Backend die URL selbst vergeben oder automatisch erstellen lassen!
'types' => [
'1' => ['showitem' => 'sys_language_uid, l10n_parent, l10n_diffsource, hidden, title, uri, teaser, beschreibung, abwann, dokument, ort, ansprechpartner, --div--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:tabs.access, starttime, endtime'],
],
In der config.yaml Deiner Site Konfiguration dann noch folgendes eintragen:
Falls Du nicht weißt, wie Du Deine Extension, Plugin, Controller etc. bennant hast, schaue in die ext_localconf.php. Dort findes Du alle benötigten Angaben.
routeEnhancers:
Stellenanzeigendetailansicht:
type: Extbase
extension: Mhstellenanzeigen
plugin: Mhstellenanzeigenplugin
routes:
- { routePath: '/{stellenanzeigen_title}', _controller: 'Stellenanzeigen::show', _arguments: {'stellenanzeigen_title': 'stellenanzeigen'} }
defaultController: 'Stellenanzeigen::show'
aspects:
stellenanzeigen_title:
type: PersistedAliasMapper
tableName: 'tx_mhstellenanzeigen_domain_model_stellenanzeigen'
routeFieldName: 'uri'
routeValuePrefix: '/'
Anschließend gehst Du in Adminwerkzeuge -> Wartung auf Analyze Database und aktualisierst Deine Datenbank oder Du deaktivierst die Extension, leerst den Cache und aktivierst Deine Extension wieder.
Weiter Informationen findest Du hier in der offiziellen TYPO3 Dokumentation.