Hi,
ich habe sowohl die Composer Class Loader und den Composer-Abhängigkeiten - Installer ausgeführt.
Leider erhalte ich beim Installer den folgenden Fehler zu fehlenden Klassen
- den Pfad zum routing.yml finde ich leider auch nicht.
PHP-Code:
In FileLoader.php line 180:
Class App\Controller\ContentElement\ExampleFormElementController does not e
xist in /www/htdocs/..../vendor/contao/core-bundle/src/Controller (whic
h is being imported from "/www/htdocs/..../vendor/contao/core-bundle/sr
c/ContaoManager/../Resources/config/routing.yml"). Make sure annotations ar
e installed and enabled.
In AnnotationDirectoryLoader.php line 62:
Class App\Controller\ContentElement\ExampleFormElementController does not e
xist
Ich habe mir nun auch nochmal die Seite angeschaut und durchgelesen https://docs.contao.org/dev/referenc...rftokenmanager
Entweder ich übersehe hier etwas oder mache vielleicht einen anderen Fehler.
Schritt 1 - Dokument mit ExampleFormElementController.php erstellen und in dem Ordner ContentElement ablegen
PHP-Code:
// src/Controller/ContentElement/ExampleFormElementController.php
<?php
namespace App\Controller\ContentElement;
use Contao\ContentModel;
use Contao\CoreBundle\Controller\ContentElement\AbstractContentElementController;
use Contao\CoreBundle\ServiceAnnotation\ContentElement;
use Contao\Template;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
/**
* @ContentElement(category="texts")
*/
class ExampleFormElementController extends AbstractContentElementController
{
/**
* @var CsrfTokenManagerInterface
*/
private $csrfTokenManager;
/**
* @var string
*/
private $csrfTokenName;
public function __construct(CsrfTokenManagerInterface $csrfTokenManager, string $csrfTokenName)
{
$this->csrfTokenManager = $csrfTokenManager;
$this->csrfTokenName = $csrfTokenName;
}
protected function getResponse(Template $template, ContentModel $model, Request $request): ?Response
{
$template->token = $this->csrfTokenManager->getToken($this->csrfTokenName)->getValue();
return $template->getResponse();
}
}
Schritt 2 - Den Code im Template einbinden
PHP-Code:
<form>
<input type="hidden" name="REQUEST_TOKEN" value="<?= $this->token ?>">
<!-- … -->
</form>
Schritt 3 -
- Composer-Abhängigkeiten installer ausführen
- Ebenfalls wurde der Anwendungs-Cache sowie der Composer Class Loader aktualisiert
Übersehe ich etwas?