Am un controler care gestionează trimiterea unui formular de resetare a parolei. Totul funcționează bine, cu excepția setării mesajelor. Am încercat să modific și mesajul din fișierul .module fără succes. A funcționat pe Drupal 8, dar după migrarea la Drupal 9 nu mai funcționează. Iată codul:
<?php
spațiu de nume Drupal\custom_form_save\Controller;
utilizați Symfony\Component\HttpFoundation\Response;
utilizați \Drupal\Core\Session\AccountProxyInterface;
utilizați \Drupal\user\UserInterface;
utilizați Drupal\Core\Image\ImageFactory;
utilizați \Drupal\user\Entity\User;
utilizați \Drupal\node\Entity\Node;
utilizați \Drupal\file\Entity\File;
utilizați \Drupal\Core\Entity\EntityManagerInterface;
utilizați \Drupal\Core\Entity\EntityInterface;
utilizați Drupal\comment\Entity\Comment;
utilizați Drupal\Core\Controller\ControllerBase;
utilizați Drupal\block\Entity\Block;
utilizați Drupal\Core\Block\BlockBase;
utilizați Drupal\Core\Session\AccountInterface;
utilizați Symfony\Component\HttpFoundation\Request;
utilizați Drupal\node\NodeInterface;
utilizați Drupal\image\Entity\ImageStyle;
utilizați Symfony\Component\HttpFoundation\RedirectResponse;
utilizați Drupal\user\PrivateTempStoreFactory;
utilizați Symfony\Component\DependencyInjection\ContainerInterface;
utilizați Drupal\custom_form_save\Controller\EmailsController;
utilizați Drupal\content_manager\Controller\StaticController;
utilizați Drupal\Core\Messenger\MessengerInterface;
clasa ResetPasswordSendController extinde ControllerBase {
funcția publică resetpasswordsend(){
$static_functions = new StaticController();
$rute = $static_functions->urlmanagerwebsite();
$session = \Drupal::service('session');
dacă (!$session->isStarted()) {
$session->migrate();
}
$gazdă = \Drupal::request()->getSchemeAndHttpHost();
$nume = $_POST['email'];
$langcode = \Drupal::languageManager()->getCurrentLanguage()->getId();
$users = \Drupal::entityTypeManager()->getStorage('user')->loadByProperties(array('mail' => $name));
dacă (!gol ($utilizatori)) {
$cont = reset($utilizatori);
$mail = _user_mail_notify('resetarea parolei', $cont, $langcode);
\Drupal::messenger()->addMessage('Wir haben eine Anleitung zum Zurücksetzen des Passworts an deine registererte E-Mail-Adresse gesendet.'); //NU FUNCȚIONEAZĂ
$răspuns = new RedirectResponse($host . $routes['resetpassword']);
$răspuns->trimite();
Ieșire;
}
$addmessage = $nume . 'wird nicht als e-mail-Adresse erkannt.';
$this->messenger()->addMessage($addmessage); //NU FUNCȚIONEAZĂ
$session->set('messagescustom', $addmessage); //NU FUNCȚIONEAZĂ
\Drupal::messenger()->addMessage('Die eingegebenen E-Mail Adresse stimmen nicht überein.'); //NU FUNCȚIONEAZĂ
$răspuns = new RedirectResponse($host . $routes['resetpassword']);
$răspuns->trimite();
Ieșire;
}
}
Tema nu ar trebui să fie problema, deoarece pe fiecare altă pagină mesajele funcționează.