Hallo,
im meinem Formular habe ich in den Einstellungen des Formulars unter Formular-ID den Wert "vertEmpfForm" eingetragen.
Wenn der Hook LoadFormFieldListener ausgelöst wird, spricht die Abfrage gemäß Codebeispiel aus der Referenz nicht an:
PHP-Code:
if ('vertEmpfForm' === $formId) {
...
}
Wenn ich mir mit
PHP-Code:
echo '<pre>formId: ' . $formId . '</pre>'; exit;
die formID ausgeben lasse, steht da "auto_vertEmpfForm".
Damit funktioniert die Abfrage dann, aber wo kommt das "auto_" her?
Viele Grüße
McS
Gesamter funktionierender Code:
PHP-Code:
// src/EventListener/LoadFormFieldListener.php
namespace App\EventListener;
use Contao\CoreBundle\DependencyInjection\Attribute\AsHook;
use Contao\Form;
use Contao\Widget;
use Contao\System;
use Contao\CoreBundle\Monolog\ContaoContext;
use Psr\Log\LogLevel;
#[AsHook('loadFormField')]
class LoadFormFieldListener
{
public function __invoke(Widget $widget, string $formId, array $formData, Form $form): Widget
{
$logger = System::getContainer()->get('monolog.logger.contao');
// echo '<pre>formId: ' . $formId . '</pre>'; exit;
if ('auto_vertEmpfForm' === $formId) {
// $widget->class.= ' myclass';
// Log der Formularfeld-Verarbeitung für Debugging
$logger->log(
LogLevel::INFO,
'LoadFormFieldListener durch '. $formId .' ausgelöst',
['contao' => new ContaoContext(__METHOD__, 'LOAD_FORM_FIELD')]
);
}
return $widget;
}
}